Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1844to1848
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

Zellauswahl anhand erster & letzter Info

Zellauswahl anhand erster & letzter Info
13.09.2021 14:50:30
udo.d
Hallo Forum,
ich hänge gerade an einer Stelle in der ich eine bestimmte Prüfung ausführen sollte.
Ausgangsbasis ist eine Auflistung verschiedener Markierungen ( auf dieser Seite ist quer rüberzus ein Kalender mit nach rechts aufsteigendem Datum ( in der Kopfzeile Nr. 30 ))
und in den Zeilen darunter ( ab Spalte AR (44) rechtswärts ) sind unterschiedliche Reihen querzus unterschiedlich lang markiert ( ein x pro Zelle ) in der jew. Zeile, d.h. in unterschiedlichen Zeilen ist in Abgleich mit dem in Zeile 30 passend ( Datum ) unten dann ein gewisser Zeitraum von ( Spalte ) - bis ( Spalte ) markiert ( lauter x nebeneinander in jener Zeile & jeder Spalte des markierten Blockes )
Diese Blockmarkierungen sollen demnach einen Zeitraum darstellen in dem also etwas geschieht - der Ansicht nach also im Prinzip ein klassischer Projekt Kalender.
Für mein Ereignis-Makro brauch ich zwischenrein ein Prüfung die erkennt egal in welcher Zeile ( activecell.row ) und im Prinzip egal in welcher Spalte ( activecell.column )
ich meine Zellauswahl mit der Maus platziere ( welche Zelle ich also aktiv auswähle ) zunächst prüft - steht in der Auswahl zunächst ein "x" oder keines ""
( heisst soviel ich habe eine Zelle eines markierten Blockes ausgewählt oder nicht ) ... If Cells(ActiveCell.Row, ActiveCell.Column) = "x" ... aber nun soll die Prüfung weiter gehend einsetzen, dieser markierte Block fängt ja irgendwo in Spalte ? an und hört auch irgendwo in Spalte ? auf ( der aktiven Zeile ) sprich geht z.B. von Spalte 10 - 31 obwohl ich mittenrein eine Zelle daraus angewählt habe / oder vieleicht auch die erste oder letzte des Blockes, egal, diesen markierten Block eben.
Ich sollte nun den Anfang und das Ende dieses aktiven Blockes ermitteln ( den Anfang ( mir reicht jew. die Spalten Nummer / oder halt das Datum aus Zeile 30 ) bitte in die aktive Zeile / Spalte 3 und das Ende in akt, Zeile / Spalte 4 ). Anfang & Ende der Markierung, damit kann ich dann schon weitermachen.
Generell sind in den versch. Zeilen mehrere verschieden lange Blöcke markiert ( eben immer mit so u so vielen Leertstellen dazwischen ) und durch diese Prüfung könnte ich dann ( egal welchen Block ich in egal welcher Zeile auswähle ) dessen Anfang und Ende somit zuvor auslesen ...
damit dann meine weitere Prozedur weis was Sie wo machen soll.
Hoffe ich habe es nicht zu kompliziert dargelegt, müsste verständlich sein, wäre euch um etwas Hilfe sehr dankbar.
Lieben Dank für alle Helfer
Grüßle Udo

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
erster Teilerfolg ( letzte Spalte hab ich nun )
13.09.2021 15:44:32
udo.d
Nach langem Tüffteln bin ich nun über ...
Cells(ActiveCell.Row, 4) = ActiveSheet.Cells(ActiveCell.Row, ActiveSheet.Columns.Count).End(xlToLeft).Column
soweit, dass er zu diesem Block die letzte mit "x" ( oder ungleich leer eben ) schon mal rausschreibt
Ich bräuchte noch den Blockanfang, da happerts noch ...
habt ihr ne Idee ?
LG udo
muss leider zurückrudern
13.09.2021 15:57:11
udo.d
Cells(ActiveCell.Row, 4) = ActiveSheet.Cells(ActiveCell.Row, ActiveSheet.Columns.Count).End(xlToLeft).Column
gibt mir den letzten Eintrag in der Zeile ( sprich des letzten Blockes wenn mehrere Blöcke in jener Zeile markiert sind ),
es müsste aber der aktive zusammenhängende Block sein, der ist evtl. 2 Blöcke ( weiter links ) und besteht eben aus unterschiedlich langer
( in aktiver Zeile mit verschieden vielen Spalten markiert / jew. "x" ).
sprich die erste & letzte Spalte dieser Blockmarkierung
LG udo
Anzeige
über Selection des ganzen Blockes nehm ich ...
13.09.2021 16:01:24
udo.d
Cells(ActiveCell.Row, 3) = Selection.Column 'erste Spalte
Cells(ActiveCell.Row, 4) = Selection.Columns.Count + Selection.Column - 1 'letzte Spalte
damit funktioniert es schon mal wenn ich den Block zuvor markiere, das kann ich aber später leider nicht während
meiner angestrebten Prozedur, da sollte Sie die Länge / Position des gewählten Blockes anhand der Auswahl einer Zelle daraus
auch erkennen ...
LG
udo
hier mal eine Beispiel Datei, dann ists einfacher
13.09.2021 19:31:06
udo.d
Ich habe mal noch eine kleine Beispiel Datei dazu angelegt die das womöglich verständlicher macht
als meine langen Erklärungen, Habe da auch die CodeStücke die ich aus den Netzfunden zusammensetzen konnte auch gelistet.
Schauts euch mal an, evtl. seht ihr dann auch gleich nen Ansatz, der meinen Kenntnissen noch nicht klar erscheint.
Wäre Euch sehr dankbar, lieben Dank und schönen Abend
Udo
https://www.herber.de/bbs/user/148047.xlsm
Anzeige
AW: hier mal eine Beispiel Datei, dann ists einfacher
13.09.2021 19:53:45
Werner
Hallo,
schön, dass du noch von selbst drauf gekommen bist mit der Beispielmappe.

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Dim loErste As Long, loLetzte As Long
If Target.Column > 8 And Target.Row > 2 Then
If Target  "" Then
Cancel = True
For i = Target.Column To 9 Step -1
If Cells(Target.Row, i) = "" Then
loErste = i + 1
Exit For
End If
Next i
For i = Target.Column To Columns.Count
If Cells(Target.Row, i) = "" Then
loLetzte = i - 1
Exit For
End If
Next i
Range(Cells(Target.Row, loErste), Cells(Target.Row, loLetzte)).Select
End If
End If
End Sub
Gruß Werner
Anzeige
100% , ich danke dir wirklich sehr ...
13.09.2021 20:05:44
udo.d
Damit hast du mir sehr geholfen, ganz herzlichen Dank für deinen Einsatz / deine Mühe.
Das hilft mir enorm, wirklich Danke !
Mit diesen For / Next Schleifen tu ich mich schon einfach noch schwer, ansatzweise kann ichs dann
zwar nachvollziehen wenn ichs dann mal sehe, aber das von alleine zusammen zu setzten , da happerts noch bei mir.
Ich hatte vorhin auf der Arbeit leider nicht die Zeit bzgl. einer Beispiel Datei, konnte das erst heute Abend in Ruhe machen.
Danke dass ihr so hilfsbereit seid.
Schönen Abend & Grüße , Udo
Gerne u. Danke für die Rückmeldung. o.w.T.
13.09.2021 22:01:35
Werner
Ein kleines Dankeschön für Dich ( Anhang )
13.09.2021 22:26:21
udo.d
Hallo Werner, deine Hilfe war ja der entscheidende Knackpunkt.
habe dir nochmal eine kleine Beispiel Datei hochgeladen , wo du letztlich den Sinn deiner tollen Codierung
sehen kannst in der Anwendung - hoffe das geht in Ordnung - können Andere evtl. auch davon zehren.
Lieben Dank nochmal
https://www.herber.de/bbs/user/148049.xlsm
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige