..|| Blog || Produkti/Storitve || MExcel || MDodatki || 300 nasvetov ||..

MAKRO -premik celic

Pomoč pri delu z MS Excelom

MAKRO -premik celic

OdgovorNapisal/-a sonofagun » Če mar 26, 2009 12:17 pm

Zdravo. Prosil bi za pomoč pri izdelavi makroja v Excelu: v enem stolpcu (npr. "B") imam "razmetane" celice s tekstom v različnih poljubnih vrsticah. Kako bi lahko SAMO te celice premaknil, npr. za dve mesti v desno. Upam, da sem dovolj razjasnil svoj problem: želel bi premakniti SAMO "neprazne" celice iz določenega stolpca in ne celega stolpca... V teh "nepraznih" celicah je zapisan samo navaden tekst, brez formul ali kaj podobnega.
Hvala.

Lep pozdrav, Gregor
sonofagun
 
Prispevkov: 118
Pridružen: Če mar 26, 2009 11:05 am



Matjazev.NET
 

OdgovorNapisal/-a admin » Če mar 26, 2009 12:33 pm

Koda: Izberi vse
'
' www.matjazev.net
'
'   marec 2009
'
Sub Premakni()
  Dim zadnjaPolna As Long, r As Long
  zadnjaPolna = Range("b65536").End(xlUp).Row
 
  For r = zadnjaPolna To 1 Step -1
    If (Trim(Cells(r, 2)) <> "") Then
      Cells(r, 4) = Cells(r, 2)
      Cells(r, 2) = ""
    End If
  Next
End Sub
lp,
Matjaž Prtenjak
Administrator
admin
Site Admin
 
Prispevkov: 3483
Pridružen: Sr jul 20, 2005 10:06 pm

OdgovorNapisal/-a sonofagun » Če mar 26, 2009 1:33 pm

Hvala za hiter odgovor, točno taka rešitev, kot sem jo potreboval. Če se da, bi še imel eno vprašanje glede istega problema: še preden bi celice premaknil, bi želel nad/pred vsako "neprazno celico" vstaviti novo prazno vrstico, potem jih premakniti za x polj v desno (kot prej), potem pa še skopirati točno te iste celice y polj v desno... Ali bi jih bilo boljše prej skopirati in komaj potem premakniti?? Hvala še enkrat za pomoč.

P.S. Ali obstaja ukaz, s katerim bi VSEM vrsticam določil, da se višina prilagodi vsebini celice?
sonofagun
 
Prispevkov: 118
Pridružen: Če mar 26, 2009 11:05 am

OdgovorNapisal/-a admin » Če mar 26, 2009 10:08 pm

Koda: Izberi vse
Option Explicit

'
' www.matjazev.net
'
'   marec 2009
'
Sub Premakni1()
  Dim zadnjaPolna As Long, r As Long
  zadnjaPolna = Range("b65536").End(xlUp).Row
 
  Dim Premakni As Integer: Premakni = 2
  Dim Kopiraj As Integer: Kopiraj = 10
 
  For r = zadnjaPolna To 1 Step -1
    If (Trim(Cells(r, 2)) <> "") Then
      Cells(r, 2 + Premakni) = Cells(r, 2)
      Cells(r, 2 + Premakni + Kopiraj) = Cells(r, 2)
      Cells(r, 2) = ""
      Cells(r, 2).EntireRow.Insert
    End If
  Next
End Sub


V makru morate popraviti še vrstici, kjer piše Premakni in Kopiraj, kamor vpišete koliko stolpcev desno naj vrednost prestavi in nato še koliko stolpcev desno naj jo kopira.
lp,
Matjaž Prtenjak
Administrator
admin
Site Admin
 
Prispevkov: 3483
Pridružen: Sr jul 20, 2005 10:06 pm


Vrni se na Excel

Kdo je prisoten

Po forumu brska: 0 registriranih uporabnikov in 2 gostov

cron