Sylon Geschrieben 14. April 2011 Geschrieben 14. April 2011 Hallo zusammen, ich habe ein Makro entworfen, welches bei Adresslieferung in Excel die Postleitzahl überprüft und ggf. eine "0" davor setzt, wenn es nur 4 Zeichen sind. Mein Problem ist, dass ich das Makro so umgestalten muss damit es nicht immer die gleiche Spalte prüft und ändert sondern es soll immer die markierte Spalte prüfen. Könnt ihr mir bitte helfen? Unten steht der Quelltext LG Sylon Columns("H:H").Select Selection.Insert Shift:=xlToRight Columns("I:I").Select Selection.Insert Shift:=xlToRight Selection.Insert Shift:=xlToRight Range("H2").Select ActiveCell.FormulaR1C1 = "=LEN(RC[-1])" Range("H2").Select Selection.AutoFill Destination:=Range("H2:H206"), Type:=xlFillDefault Range("H2:H206").Select ActiveWindow.SmallScroll Down:=-204 Range("I2").Select ActiveCell.FormulaR1C1 = "=IF(RC[-1]=4,""0""&RC[-2],RC[-2])" Range("I2").Select Selection.AutoFill Destination:=Range("I2:I206"), Type:=xlFillDefault Range("I2:I206").Select ActiveWindow.SmallScroll Down:=-225 Range("I2:I206").Select Selection.Copy Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Columns("J:J").Select Application.CutCopyMode = False Selection.Delete Shift:=xlToLeft Range("I1").Select ActiveCell.FormulaR1C1 = "PLZ" Columns("G:H").Select Range("H1").Activate Selection.Delete Shift:=xlToLeft End Sub Zitieren
vba Geschrieben 16. April 2011 Geschrieben 16. April 2011 Hallo, weil man nicht sehen kann was da reinkopiert wird, lässt sich die Frage schlecht beantworten. Das Beispiel unten formatiert nach Rückfrage die ganze Spalte mit dem Sonderformat "Postleitzahl". Vielleicht hilft es ja: Sub PLZ_Fomat() Dim lngSpalte As Long 'ganze Spalte als Postleitzahl formatieren lngSpalte = ActiveCell.Column Columns(lngSpalte).Select If MsgBox("Spalte " & lngSpalte & " als PLZ formatieren?", _ vbQuestion + vbYesNoCancel, _ "") = vbYes Then Columns(lngSpalte).NumberFormat = "00000" Else MsgBox "Keine Änderung vorgenommen.", , "" End If End Sub Gruß Alfons Zitieren
Sylon Geschrieben 17. April 2011 Autor Geschrieben 17. April 2011 also die Spalte "PLZ" ist jeder Excel immer an einer anderen Stelle bisher macht das Makro folgendes: -fügt rechts neben der Spalte 2 neue ein - in die erste kommt: =länge(z.B G2) - in die zweite kommt: =wenn(H2=4;"0"&G2;G2) - beide formeln werden bis Zeile 265 circa gezogen jetzt brauche ich das makro so, dass es nicht immer auf die Spalte "G" angewendet wird sondern auf die Spalte, die ich markiert hab >.< Vielleicht ist es so für dich / euch besser nachzuvollziehen. LG Sylon Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.