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

Var. Bereich finden - Zellen dazwischen

Var. Bereich finden - Zellen dazwischen
11.09.2021 10:28:36
Jem
Hallo liebe Herber Community,
ich habe folgendes Problem:
Ich versuche über eine Userform einen Variablen Bereich zu finden, welcher über ein Datum, bzw zwei Daten gefunden wird.
Combobox1 = Datum1 ; Combobox2 = Datum2
Damit finde ich dann 2 Spalten.
Ich möchte aber auch noch eine dritte Variable dazu finden, z.B. x, welches die Zeile darstellen soll.
Das mache ich über die Combobox3 = Name
Mein Ziel ist es, mit diesen 3 Variablen einen Bereich festzulegen, bei dem ich den Zelleninhalt zwischen den beiden Daten in Zeile x ändern kann.
Also zum Beispiel:
Combobox1= 11.11.2021
Combobox2= 15.11.2021
Combobox3= Klaus
Der Name Klaus befindet sich z.B. in Zeile 20, Combobox1 in Spalte LH und Combobox2 in Spalte LL.
Jetzt möchte ich den Bereich zwischen Spalte LH und LL in Zeile 20 auswählen und den Zelleninhalt verändern.
Zum Beispiel wenn der Zelleninhalt "1" ist soll jede Zelle in diesem Bereich zu "EU" geändert werden.
Ich habe bis jetzt folgenden Code (auch nur von der netten Hilfe aus diesem Forum bekommen), bleibe aber bei "With Sheets("Hauptseite")" hängen, weil ich nicht weiß wie ich den Bereich zwischen den beiden Spalten ansprechen kann:

Private Sub CommandButton1_Click()
Dim varDatum As Variant, varDatum2 As Variant, x As Variant
Dim Zelle As Range, Zelle1 As Range, Zelle2 As Range
If Me.ComboBox1.ListIndex > -1 Or Me.ComboBox1  "" And Me.ComboBox2.ListIndex > -1 Or Me.ComboBox2  "" Then
If IsNumeric(Me.ComboBox1) And IsNumeric(Me.ComboBox2) Then
If IsDate(Me.ComboBox1) And IsDate(Me.ComboBox2) Then
varDatum = Application.Match(CLng(CDate(Me.ComboBox1)), Rows(4))
varDatum2 = Application.Match(CLng(CDate(Me.ComboBox2)), Rows(4))
x = Application.Match(Me.ComboBox4, Sheets("Hauptseite").Columns(4))
If Not IsError(varDatum) And Not IsError(varDatum2) And Not IsError(x) Then
'Hier weiß ich nicht weiter
With Sheets("Hauptseite")
Set Zelle1 = Sheets("Hauptseite").Cells(x, varDatum)
Set Zelle2 = Sheets("Hauptseite").Cells(x, varDatum2)
For Each Zelle In Range(Zelle1, Zelle2)
If Zelle.Value = "1" Then
Zelle.Value = "EU"
End If
Next Zelle
End With
End If
End If
End If
End If
End Sub
Ich habe eine Beispieldatei angehängt.
Vielen Dank im voraus!!!
https://www.herber.de/bbs/user/148017.xlsm

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Var. Bereich finden - Zellen dazwischen
11.09.2021 10:37:59
{Boris}
Hi,
teste mal. Ich geh davon aus, dass sich Range(Zelle1, Zelle2) auch im Sheet "Hauptseite" befindet. Demnach musst Du den Bereich mit dem vorangestellten Punkt (.) an das mittels With referenzierte Objekt anbinden.

With Sheets("Hauptseite")
Set Zelle1 = .Cells(x, varDatum)
Set Zelle2 = .Cells(x, varDatum2)
For Each Zelle In .Range(Zelle1, Zelle2)
If Zelle.Value = "1" Then
Zelle.Value = "EU"
End If
Next Zelle
End With
VG, Boris
AW: Var. Bereich finden - Zellen dazwischen
11.09.2021 10:46:50
Jem
Hallo Boris,
vielen Dank für die Antwort.
Leider auch mit dieser Änderung nicht das gewünschte Ergbenis. Es Passiert nichts, auch keine Fehlermeldung.
Ich denke mein Fehler ist, das ich nicht weiß wie ich den Bereich zwischen "Zelle1" und "Zelle2" auswählen oder ansprechen kann.
Oder vielleicht ist auch mein ganzer Ansatz falsch mit For Each etc. ...
trotzdem vielen Dank!
Anzeige
AW: Var. Bereich finden - Zellen dazwischen
11.09.2021 10:50:38
ralf_b
Bei Application match fehlt was.
x = Application.Match(Me.ComboBox4.Text, Columns(4), 0)
achja und ....
11.09.2021 10:52:46
ralf_b
mit deiner Beispieldatei hast du ganz schön gepfuscht. Falsche Userformangabe, falsche Zeilennummer für die Suche.
Datum ist in Rows(10) nicht 4
AW: Var. Bereich finden - Zellen dazwischen
11.09.2021 10:53:01
{Boris}
Hi,
wenn Zelle1 und Zelle2 mit den korrekten Objektvariablen gefüllt sind
Set Zelle1 = .Cells(x, varDatum)
Set Zelle2 = .Cells(x, varDatum2)
dann funktioniert auch die For-Each-Schleife mit
For Each Zelle In .Range(Zelle1, Zelle2)
Lad doch mal Deine Mappe mit den notwendigsten Daten hoch.
VG, Boris
Uups - Beispieldatei jetzt erst gesehen...oT
11.09.2021 10:53:56
{Boris}
...
AW: Var. Bereich finden - Zellen dazwischen
12.09.2021 11:31:00
Jem
Entschuldigung ralf, ich hatte die Userform aus einer anderen Datei importiert um eine "Test-Datei" zu erstellen. Dabei habe ich vergessen die richtigen Rows zu ändern.
ich habe es jetzt hinbekommen.
Boris hatte doch die richtige Lösung, ich habe den Fehler gehabt, da falsche Row angaben...
Vielen Dank!
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige