Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1296to1300
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

aktuelle Zelladresse als Fixwert speichern

aktuelle Zelladresse als Fixwert speichern
03.02.2013 18:32:21
Rolf
Hallo alle miteineind,
ist es im Rahmen einer VBA möglich, die Adresse der aktuellen Zelle irgendwo/irgendwie als Fixwert zu hinterlegen, um später auf genau diese Zelle zugreifen zu können?
Gruß, Rolf

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
schreib die Adresse in eine String-Variable kwT
03.02.2013 18:38:32
Matthias

AW: aktuelle Zelladresse als Fixwert speichern
03.02.2013 18:39:18
Hajo_Zi
Hallo Rolf,
ja das ist möglich.
Benutze eine Variable.

AW: aktuelle Zelladresse als Fixwert speichern
03.02.2013 18:39:37
Hajo_Zi
Hallo Rolf,
ja das ist möglich.
Benutze eine Variable.

AW: aktuelle Zelladresse als Fixwert speichern
04.02.2013 06:22:15
Rolf
Guten Morgen Hajo,
das hab' ich schon versucht mit
Dim AZ As String
AZ = ActiveCell.Address
Nur: Die Adresse in AZ ändert sich natürlich, sobald ich eine andere Zelle aktiviere:(
Das Scenario ist wie folgt.
In jeder Spalte einer Tabelle dürfen maximal nur n Einträge vorgenommen werden. Sobald das Limit überschritten ist, soll die Zelle mit dem letzten Eintrag rot eingefärbt und eine Warnmeldung (MsgBox) erzeugt werden.
So lange die Eingabe mit RETURN oder ENTER bestätigt wird, kein Problem. Betätigt man statt dessen jedoch eine der Pfeiltasten, oder benutzt die Maus, um zur nächsten Zelle zu gelangen, wird diese mit rotem Hintergrund dargestellt. Sie ist ja jetzt die aktuelle Zelle (AZ). Schöne Scheiße!
Ich habe auch schon mal die Pfeiltasten per Makro gesperrt. Aber das ist ätzend. Da wird man beklopft im Kopf!
Hast du vielleicht noch eine andere Idee? Ich habe schon darüber gegrübelt, ob - und wenn ja, wie - es möglich ist, den Variablen-Wert von AZ (= Zelladresse) als absoluten Wert in eine "Hilfs"-Zelle zu kopieren. Bislang ergebnislos. Momentan überlege ich, ob ich evtl. mit der excel-Funktion ZELLE(Infotyp;Bezug) irgendwie weiter komme. Bislang sind meine Versuche allerdings gescheitert.
Gruß, Rolf

Anzeige
AW: aktuelle Zelladresse als Fixwert speichern
04.02.2013 07:23:11
firmus
Hallo Rolf,
ich habe mal unter "Scheiße" in der Onlinehilfe nachgesehen - nichts gefunden.
Vielleicht schreibt man es ja mit "ss".
Zum eigentlichen Problem:
Der Wert in AZ bleibt nach der Zuweisung erhalten - es sei denn Du läufst in Deiner Logik erneut über diese Instruktion. Dann wird natürlich AZ wieder erneut gesetzt.
Damit Dir geholfen werden kann, kannst Du
a) Schrittweise durch Deinen Code gehen (F8)
vermutlich entdeckst Du das Problem selbst
oder
b) Deinen VBA-Code mal hochladen, dann kann der Ablauf verifiziert werden.
Gruß
Firmus

Anzeige
AW: aktuelle Zelladresse als Fixwert speichern
04.02.2013 14:17:51
Hajo_Zi
Hallo Rolf,
ich sehe nichtr Deinen Gesamten Code darum kann ich dazu nichts schreiben. Soll die Variable nur in einem Modul bekannt sein ist Dim korrekt, ansonsten Public.

AW: aktuelle Zelladresse als Fixwert speichern
04.02.2013 17:27:09
Rolf
Hallo Hajo,
habe zwischenzeitlich etwas anderes ausprobiert. Siehe meinen Thread vom 03.02.2013 18:32:21. Bereitet aber immer noch Probleme in puncto Pfeiltasten. Hier der Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim UrlPlan As String               'Eingabebereich
Dim maxUrlauber As String           'max. Anzahl Urlauber pro Tag
Dim start1 As Long, start2 As Long  'Startzeile Block1 bzw. Block2
Dim sum1 As Long, sum2 As Long      'Summenzeile Block1 bzw. Block2
Dim AZ As String, spB As String     'aktuelle Zelle, aktuelle Spalte
Dim Bereich As Range                'Datenbereich im aktuellen Block (Teil-Spalte)
Dim zelle As Range                  'Zelle(n) in "Bereich"
Dim i As Integer                    'Anzahl gefüllter Zellen in "Bereich"
Dim WS As String                    'Name dieses Worksheets
UrlPlan = Range("UrlPlan").Address
maxUrlauber = Range("maxUrlauber").Address
start1 = Range("start1").Row
start2 = Range("start2").Row
sum1 = Range("sum1").Row
sum2 = Range("sum2").Row
WS = ActiveSheet.Name
If Intersect(Target, Range(UrlPlan)) Is Nothing Then
Exit Sub
Else
'aktive Zelladresse und Spaltenbuchstabe(n) in Variablen hinterlegen, _
getrennt nach "Block1" und "Block2"
AZ = ActiveCell.Address
spB = Mid(AZ, 2, InStr(2, AZ, "$") - 2)
'Löscht den Eintrag "Urlaubswunsch", wenn genehmigt
With Target
If .Interior.ColorIndex = 36 And .Offset(1, 0).Value  "" Then
.Offset(1, 0).ClearContents
.Offset(1, 0).Interior.ColorIndex = 2
.Offset(1, 0).Font.ColorIndex = 3
End If
End With
'Anzahl Zelleinträge ermitteln und in der Variablen "i" hinterlegen
If za  "" Then i = i + 1
Next zelle
Else
Set Bereich = Range(spB & start2 & ":" & spB & sum2 - 1)
For Each zelle In Bereich
If zelle.Value  "" Then i = i + 1
Next zelle
End If
'Warnmeldung, wenn i > maximal erlaubte Anzahl Urlauber pro Tag
If i > Range(maxUrlauber).Value Then
MsgBox _
"Die Anzahl Ur-Wünsche überschreitet das zulässige Maximum!" & _
vbLf & vbLf & "Bitte sprich dich mit deinen Kolleginnen / " & _
"Kollegen ab, " & vbLf & "oder wähle einen anderen " & _
"Zeitraum.", vbOKOnly + vbExclamation, "Warnhinweis"
'Ändert die Hintergrundfarbe der Zelle in rot und die Schriftfarbe in blau
With Target
.Interior.ColorIndex = 3
.Font.ColorIndex = 5
End With
End If
End If
End Sub
Gruß, Rolf

Anzeige
AW: aktuelle Zelladresse als Fixwert speichern
04.02.2013 17:29:26
Rolf
Hallo Hajo,
habe zwischenzeitlich etwas anderes ausprobiert. Siehe meinen Thread vom 03.02.2013 18:32:21. Bereitet aber immer noch Probleme in puncto Pfeiltasten. Hier der Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim UrlPlan As String               'Eingabebereich
Dim maxUrlauber As String           'max. Anzahl Urlauber pro Tag
Dim start1 As Long, start2 As Long  'Startzeile Block1 bzw. Block2
Dim sum1 As Long, sum2 As Long      'Summenzeile Block1 bzw. Block2
Dim AZ As String, spB As String     'aktuelle Zelle, aktuelle Spalte
Dim Bereich As Range                'Datenbereich im aktuellen Block (Teil-Spalte)
Dim zelle As Range                  'Zelle(n) in "Bereich"
Dim i As Integer                    'Anzahl gefüllter Zellen in "Bereich"
Dim WS As String                    'Name dieses Worksheets
UrlPlan = Range("UrlPlan").Address
maxUrlauber = Range("maxUrlauber").Address
start1 = Range("start1").Row
start2 = Range("start2").Row
sum1 = Range("sum1").Row
sum2 = Range("sum2").Row
WS = ActiveSheet.Name
If Intersect(Target, Range(UrlPlan)) Is Nothing Then
Exit Sub
Else
'aktive Zelladresse und Spaltenbuchstabe(n) in Variablen hinterlegen, _
getrennt nach "Block1" und "Block2"
AZ = ActiveCell.Address
spB = Mid(AZ, 2, InStr(2, AZ, "$") - 2)
'Löscht den Eintrag "Urlaubswunsch", wenn genehmigt
With Target
If .Interior.ColorIndex = 36 And .Offset(1, 0).Value  "" Then
.Offset(1, 0).ClearContents
.Offset(1, 0).Interior.ColorIndex = 2
.Offset(1, 0).Font.ColorIndex = 3
End If
End With
'Anzahl Zelleinträge ermitteln und in der Variablen "i" hinterlegen
If za  "" Then i = i + 1
Next zelle
Else
Set Bereich = Range(spB & start2 & ":" & spB & sum2 - 1)
For Each zelle In Bereich
If zelle.Value  "" Then i = i + 1
Next zelle
End If
'Warnmeldung, wenn i > maximal erlaubte Anzahl Urlauber pro Tag
If i > Range(maxUrlauber).Value Then
MsgBox _
"Die Anzahl Ur-Wünsche überschreitet das zulässige Maximum!" & _
vbLf & vbLf & "Bitte sprich dich mit deinen Kolleginnen / " & _
"Kollegen ab, " & vbLf & "oder wähle einen anderen " & _
"Zeitraum.", vbOKOnly + vbExclamation, "Warnhinweis"
'Ändert die Hintergrundfarbe der Zelle in rot und die Schriftfarbe in blau
With Target
.Interior.ColorIndex = 3
.Font.ColorIndex = 5
End With
End If
End If
End Sub
Gruß, Rolf

Anzeige
AW: aktuelle Zelladresse als Fixwert speichern
04.02.2013 10:59:25
Rolf
@alle,
bin zwischenzeitlich auf eine - wenngleich nicht gänzlich zufriedenstellende - Lösung gestoßen:
With Target
.Interior.ColorIndex = 3
.Font.ColorIndex = 5
End With
Dieser kleine Code-Schnipsel funktioniert bei RETURN und ENTER sowie den Pfeiltasten {RIGHT} und {DOWN} einwandfrei; nicht jedoch beim Betätigen der Pfeiltasten {LEFT} und {UP}. Das gleiche Problem habe ich bei Mausklick links bzw. oberhalb der Zelle, die formatiert werden soll. Kann mir jemand sagen, woran das liegt und, wenn ja, was ich ändern muss?
Gruß, Rolf

Anzeige
AW: aktuelle Zelladresse als Fixwert speichern
04.02.2013 11:00:45
Rolf
Sorry, ich vergaß das "Häkchen"
@alle,
bin zwischenzeitlich auf eine - wenngleich nicht gänzlich zufriedenstellende - Lösung gestoßen:
With Target
.Interior.ColorIndex = 3
.Font.ColorIndex = 5
End With
Dieser kleine Code-Schnipsel funktioniert bei RETURN und ENTER sowie den Pfeiltasten {RIGHT} und {DOWN} einwandfrei; nicht jedoch beim Betätigen der Pfeiltasten {LEFT} und {UP}. Das gleiche Problem habe ich bei Mausklick links bzw. oberhalb der Zelle, die formatiert werden soll. Kann mir jemand sagen, woran das liegt und, wenn ja, was ich ändern muss?
Gruß, Rolf

Anzeige
AW: aktuelle Zelladresse als Fixwert speichern
04.02.2013 12:56:36
Daniel
Hi
also wenn dein Ansinnen ist, daß in einer Spalte nur eine Maximale Anzahl von Werten eingegeben wird, würde ich nicht über VBA gehen, sondern über DATEN - DATENTOOLS - DATENÜBERPRÜFUNG und dort eine entsprechende Regel anlegen:
Beispiel für max 9 Einträge pro Spalte:
- alle Spalten markieren
- Obige Menüfunktion auswählen mit den Einstellungen:
Zulassen: Benutzerdefinert
Formel: =Anzahl2(A:A)<10 (die Formel wird immer für die aktive Zelle geschrieben)
- bei Fehlermeldung kannst du dann deine Fehlermeldung eintragen
Gruß Daniel

AW: aktuelle Zelladresse als Fixwert speichern
05.02.2013 04:16:06
Rolf
Hallo Daniel,
Danke! Nach kleiner Anpassung an meine Belange ist das eine Alternative.
Gruß, Rolf
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige