Registriert seit: 22.05.2022
Version(en): 2019
ich würde gerne in mehrere Bereiche was verschiedenes eintragen,wenn die Zellen darin leer sind.
jetzt habe ich 2 Makros gefunden mit dem das machbar wäre.
habe mich auch bissl belesen um sie zu verstehen aber VBA ist wirklich etwas kompliziertes für einen Einsteiger.
Dieses funktionierte aber leider nur bei einem Bereich.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Bereich As Range
Set Bereich = Range("G19:G34")
If Not Intersect(Target, Bereich) Is Nothing Then
If IsEmpty(Target) Then
Target.Value = "Art.Nr. eingeben"
End If
End If
End Sub
nun meine Frage ist dieses erweiterbar auf 3 - 4 Bereiche?
Danke euch und noch schöne Pfingsten gewünscht
Registriert seit: 12.10.2014
Version(en): 365 Insider (32 Bit)
05.06.2022, 18:02
(Dieser Beitrag wurde zuletzt bearbeitet: 05.06.2022, 18:05 von RPP63.)
Moin!
Ich zeige Dir mal, wie ich so etwas manuell mache:
• Ich markiere die einzelnen Bereiche nacheinander mit der Maus bei gedrückter Strg-Taste
• F5 → Inhalte → Leerzellen (markiert alle leeren Zellen im zusammengesetzten Bereich)
• "Art.Nr. eingeben" (ohne "") eintippen und mit Strg+Enter bestätigen
• Fettich!
Wenn Du dabei den Rekorder laufen lässt, hast Du ein Gerüst, wenn Du unbedingt VBA einsetzen willst.
[da steht dann etwas von SpecialCells(xlCellTypeBlanks)]
Habs jetzt mal gemacht:
Sub Makro1()
'
' Makro1 Makro
'
'
Range("E3:E23,H5:H9,H16:H23").Select
Range("H16").Activate
Selection.SpecialCells(xlCellTypeBlanks).Select
Selection.FormulaR1C1 = "Dingens!"
End Sub
Jetzt noch das Überflüssige rauswerfen …
Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag.
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Registriert seit: 22.05.2022
Version(en): 2019
05.06.2022, 18:06
(Dieser Beitrag wurde zuletzt bearbeitet: 05.06.2022, 18:09 von kingkong.)
Danke Dir und wird sofort probiert also als erstes das ohne Makro
Registriert seit: 22.05.2022
Version(en): 2019
ohne Makro ging nicht
Private Sub Worksheet_Change(ByVal Target As Range)
Range("O3:O7,Q3:Q7").Select
Range("O3").Activate
Selection.SpecialCells(xlCellTypeBlanks).Select
Selection.FormulaR1C1 = "FIN.eingeben"
End Sub
so füllt er die Zelle die ich lösche meckert aber rum wen in den anderen Zellen noch was steht und zwar hier
Selection.SpecialCells(xlCellTypeBlanks).Select
Registriert seit: 12.10.2014
Version(en): 365 Insider (32 Bit)
Jo, wenn er keine leeren Zellen findet, läuft dies in einen Laufzeitfehler.
Klassenmodul der Tabelle:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("O3:O7,Q3:Q7")) Is Nothing Then
Call Makro1
End If
End Sub
Allgemeines Modul:
Code:
Sub Makro1()
On Error Resume Next
Range("O3:O7,Q3:Q7").SpecialCells(xlCellTypeBlanks).Value = "Dingens!"
On Error GoTo 0
End Sub
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag.
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Registriert seit: 22.05.2022
Version(en): 2019
Danke so gehts
und nur noch eine Frage besteht die Möglichkeit in F6 etwas anderes einzutragen ?
Registriert seit: 12.10.2014
Version(en): 365 Insider (32 Bit)
Ja, warum auch nicht?
Schließlich wird F6 doch gar nicht vom Intersect() abgedeckt.
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag.
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Registriert seit: 22.05.2022
Version(en): 2019
05.06.2022, 20:19
(Dieser Beitrag wurde zuletzt bearbeitet: 05.06.2022, 20:26 von kingkong.)
Aber auch mit diesem Makro
also gleichzeitig egal wo etwas leer wird
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("O3:O7,Q3:Q7")) Is Nothing Then
Call Makro1
If Not Intersect(Target, Range("F6")) Is Nothing Then
Call Makro2
End If
End Sub
Registriert seit: 12.10.2014
Version(en): 365 Insider (32 Bit)
Dann musst Du doch nur
Intersect(Target, Range("O3:O7,Q3:Q7"))
erweitern mit
Intersect(Target, Range("O3:O7,Q3:Q7,F6"))
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag.
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Registriert seit: 22.05.2022
Version(en): 2019
ich denke wir reden aneinander vorbei aber belehr mich falls ich hier was falsch mache also wenn (O3 bis O7und Q3 bis Q7 leer ist dann abc , wenn aber F6 leer ist dann cde)
das meinte ich
DANKE