Supportnet / Forum / Tabellenkalkulation
Auswahl einer Zelle im Makro bei variabler Zeile
Frage
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:
[b]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[/b]
[u]Meine Frage:[/u] 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 [b]Rows(Wiederholungen + 1).Select[/b] automatisch die erste Zelle in der neuen Zeile auswählt. Wie aber komme ich weiter nach rechts im Sinne einer Auswahl z.B. [b]Range("b10").Select[/b], 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 1 von rainberg
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
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.
Hallo Andreas,
versuch es doch mal so:
Gruß
M.O.
versuch es doch mal so:
Cells(ActiveCell.Row, 10) = "hier"Gruß
M.O.
Antwort 3 von coros
Hallo Andreas,
mit dem Befehl
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.
mit dem Befehl
ActiveCell.Offset(0, 2) = "Test"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
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
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
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!
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
... 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;"")"
ActiveCell.Offset(0, 2) = "=Wenn(Deckblatt!D11="ja";'2007'!d11;"")"
Antwort 7 von fedjo
Hallo Andreas,
versuch es mal so:
If Sheets("Deckblatt").Range("D11").Value = "ja" Then
ActiveCell.Offset(0, 2) = "2007"
End If
Gruß
fedjo
versuch es mal so:
If Sheets("Deckblatt").Range("D11").Value = "ja" Then
ActiveCell.Offset(0, 2) = "2007"
End If
Gruß
fedjo

