MAKRO -premik celic

Pomoč pri delu z MS Excelom
Odgovori
sonofagun
Prispevkov: 119
Pridružen: Če Mar 26, 2009 11:05 am

MAKRO -premik celic

Odgovor Napisal/-a sonofagun »

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
admin
Site Admin
Prispevkov: 3687
Pridružen: Sr Jul 20, 2005 10:06 pm

Odgovor Napisal/-a admin »

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
sonofagun
Prispevkov: 119
Pridružen: Če Mar 26, 2009 11:05 am

Odgovor Napisal/-a sonofagun »

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?
admin
Site Admin
Prispevkov: 3687
Pridružen: Sr Jul 20, 2005 10:06 pm

Odgovor Napisal/-a admin »

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
Odgovori