5.6k Aufrufe
Gefragt in Tabellenkalkulation von afetinci Mitglied (183 Punkte)
Hallo ,

bin neu im Forum, habe gestern bereits eine Frage gehabt worauf mir hajo schnell mit der richtigen Lösung geantwortet hat. Danke nochmal.

Mein nächstes Problem:

Ich habe eine Excel Bewerberlist wo übliche Daten wie Name, Vorname, Bewerbungsdatum u.s.w. eingetragen sind. Diese Daten verbinden sich mit einem Serienbrief (nur zur Info).
Ist es möglich auch eine "Suchoption" in Excel einzupflegen, wo ich in einer Zelle den Namen eingebe und in einem anderen Tabellenblatt die Werte wiedergegeben werden (10 Eingaben sollten möglich sein).

Das nächste ist:
In einem Feld soll nur ein bestimmtes Format zugelassen werden (###-##). Kann ich das auch mit einem Makro so einstellen das andere Formate nicht zugelassen werden.

Gruß

17 Antworten

0 Punkte
Beantwortet von nighty Experte (6.6k Punkte)
hi all ^^

ups , vorletzte zeile bitte auf true :-)

gruss nighty
0 Punkte
Beantwortet von nighty Experte (6.6k Punkte)
hi all ^^

also irgend ein fehler ist wohl immer da,ich glaub ich hatte noch nie ein fehlerfreies makro,das sollte zu denken geben *gruebel gruebel*

ich habs rausgefunden :-)

nennt sich das nighty syndrom *grrr*

gruss nighty
0 Punkte
Beantwortet von afetinci Mitglied (183 Punkte)
Hi Nighty,

ich hoffe ich stresse dich nicht rein :-). Leider konnte ich dir nicht antworten, da ich am wochenende nicht hier war. Die Makros haben bis jetzt fehlerfrei funktioniert :-)))) Also bist super.

Dein Makro überträgt mir den Wert von Spalte A nach Spalte B beim klicken. Vielleicht konnte ich das nicht gut erklären:

Ich benötige ein Code, dass wenn ich irgendwo (Zeile 1:800) auf Spalte A klicke mir in Spalte B in derselben Zeile wie A der Wert 1 eingetragen wird.

Gruß und vielen Dank für deine Mühen.

afetinci
0 Punkte
Beantwortet von
Hallo afetinci,
mit einem Doppel Klick:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim RaBereich As Range, RaZelle As Range
Set RaBereich = Range("A1:A800")
Application.EnableEvents = False
For Each RaZelle In Range(Target.Address)
If Not Intersect(RaZelle, RaBereich) Is Nothing Then
RaZelle.Offset(0, 1) = 1
End If
Next RaZelle
Application.EnableEvents = True
Set RaBereich = Nothing
End Sub

Oder

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim RaBereich As Range, RaZelle As Range
Set RaBereich = Range("A1:A800")
Application.EnableEvents = False
For Each RaZelle In Range(Target.Address)
If Not Intersect(RaZelle, RaBereich) Is Nothing Then
RaZelle.Offset(0, 1) = 1
End If
Next RaZelle
Application.EnableEvents = True
Set RaBereich = Nothing
End Sub

Gruß
fedjo
0 Punkte
Beantwortet von afetinci Mitglied (183 Punkte)
Hallo Fedjo,

vielen Dank für den Code. So soll er funktionieren. Kann man aber anstelle Doppel Klick nur einen Klick machen??

Gruß
0 Punkte
Beantwortet von
Hallo afetinci,
wenn die aktive Zelle leer ist wird nichts eingetragen.
Gruß
fedjo

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
If Not Intersect(ActiveCell, Range("A1:A800")) Is Nothing Then
If ActiveCell = "" Then Exit Sub
Dim RaBereich As Range, RaZelle As Range
Set RaBereich = Range("A1:A800")
Application.EnableEvents = False
For Each RaZelle In Range(Target.Address)
If Not Intersect(RaZelle, RaBereich) Is Nothing Then
RaZelle.Offset(0, 1) = 1
End If
Next RaZelle
Application.EnableEvents = True
Set RaBereich = Nothing
End If
End Sub
0 Punkte
Beantwortet von afetinci Mitglied (183 Punkte)
Hi Fedjo,

Besten Dank für deine Mühen!!!
klappt super!!!

Gruß
afetinci
...