Auswahl einer Zelle im Makro bei variabler Zeile
Hallo zusammen,
ich suche eine Lösung für folgendes Problem. Ich habe per Auswahlbutton die Möglichkeit Zeilen unterhalb eines bestimmten Begriffs (hier "Sachanlagen") einzufügen. Gleichzeitg wird in der neu eingefügten Zeile "neuer SV" automatisch in die Zelle geschrieben:
Dim Wiederholungen As Long
Application.ScreenUpdating = False
For Wiederholungen = Range("a65536").End(xlUp).Row To 1 Step -1
If Cells(Wiederholungen, 1) = "Sachanlagen" Then
Rows(Wiederholungen + 1).Insert Shift:=x1Down
Rows(Wiederholungen + 1).Select
ActiveCell.FormulaR1C1 = "neuer SV
End If
Next
End Sub
Meine Frage: Wie bekomme ich in der neu eingefügte Zeile in einer anderen, weiter rechts liegenden Zelle einen automatischen Eintrag. Das o.g. Makro funktioniert bei mir ohne diese besondere Anforderung, weil der Befehl Rows(Wiederholungen + 1).Select automatisch die erste Zelle in der neuen Zeile auswählt. Wie aber komme ich weiter nach rechts im Sinne einer Auswahl z.B. Range("b10").Select, nur dass die Bezeichnung der Zelle nicht fix sein darf, sondern von der eingefügten Zeile abhängig sein muss.
Danke im Voraus für eure Hilfe!!!!
Antwort schreiben
Antwort 1 von rainberg vom 19.07.2019, 14:43 Options
Hallo Andreas,
meinst Du es so?
Sub test()
Dim Wiederholungen As Long
Application.ScreenUpdating = False
For Wiederholungen = Range("a65536").End(xlUp).Row To 1 Step -1
If Cells(Wiederholungen, 1) = "Sachanlagen" Then
Rows(Wiederholungen + 1).Insert Shift:=xlDown
Cells(Wiederholungen + 1, 1).Value = "neuer SV"
Cells(Wiederholungen + 1, 2).Value = "autom. Eintrag"
End If
Next
End Sub
Gruß
Rainer
Antwort 2 von M.O. vom 19.07.2019, 14:43 Options
Hallo Andreas,
versuch es doch mal so:
Cells(ActiveCell.Row, 10) = "hier"
Gruß
M.O.
Antwort 3 von coros vom 19.07.2019, 14:44 Options
Hallo Andreas,
mit dem Befehl
[b]ActiveCell.Offset(0, 2) = "Test"[/b]
wird Dir 2 Spalten weiter in der gleichen Zeile der Begriff "Test" eingetragen. Bei anderer Spalte die Zahl 2 verändern.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 4 von Artemius76 vom 19.07.2019, 14:59 Options
Hallo rainberg, M.O., coros,
alle drei Lösungen funktionieren hervorragend. Auf
Cells(Wiederholungen + 1, 1).Value = "neuer SV"
hätte ich eigentlich aus selber kommen müsen ;-)
Vielen Dank!!! Hat mir sehr geholfen!!!
Andreas
Antwort 5 von Artemius76 vom 19.07.2019, 15:41 Options
Jetzt brauche ich doch nochmal eure Hilfe, bitte. Wie kann ich denn nun bei der ausgewählten Zelle eine Wenn-Dann-Abfrage mit Verweis auf ein anderes Sheet machen. Also:
ActiveCell.Offset(0, 2) = "Wenn(Deckblatt!D11="ja";'2007'!d11;"")"
Diese Eingabe wird bei mir nicht kompiliert?!
Danke für eure Antworten!
Antwort 6 von Artemius76 vom 19.07.2019, 15:43 Options
... und es liegt nicht daran, dass ich bei dem obigen Eintrag das Gleichheitszeichen für die Formel vergessen haben. Sorry :-)
ActiveCell.Offset(0, 2) = "=Wenn(Deckblatt!D11="ja";'2007'!d11;"")"
Antwort 7 von fedjo vom 19.07.2019, 19:24 Options
Hallo Andreas,
versuch es mal so:
If Sheets("Deckblatt").Range("D11").Value = "ja" Then
ActiveCell.Offset(0, 2) = "2007"
End If
Gruß
fedjo