Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema Userform
BildScreenshot zu Userform Userform-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema MultiPage
BildScreenshot zu MultiPage MultiPage-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema TextBox
BildScreenshot zu TextBox TextBox-Seite mit Beispielarbeitsmappe aufrufen

Schleife um Zellen zu markieren

Betrifft: Schleife um Zellen zu markieren von: Juli
Geschrieben am: 01.07.2015 13:15:57

Hallo,

ich bin gestern leider nicht auf eine Lösung gekommen....

- Ich will über eine Userform 2 Datum eingeben
- Ein "Von"-Datum wird in Textbox1 und ein "Bis"-Datum in Textbox2 eingegeben
- In Excel haben alle Zellen in Zeile 6 ein Datum
- Jetzt soll in Zeile 6 das "Von"-Datum gesucht werden und alle Zellen bis zum
"Bis"-Datum farbig markiert werden.

Ich hab es mit einer Schleife probiert, die mir aber ab dem "Von"-Datum leider endlos alle Zellen in der Zeile markiert.

Der Code:

'Variablen definieren
Dim j As Long
Dim anzahlTage As Long
Dim i As Long
Dim date1, date2 As Date
Dim SpalteMax As Long
Dim Spalte As Long

' Werte zuweisen
datumgegeben = Format(UserForm1.TextBox19.Value, "dd:mm:yyyy")
datumgegeben2 = Format(UserForm1.TextBox26.Value, "dd:mm:yyyy")
datumgesucht = Format(Worksheets("Tabelle1").Cells(6, Spalte), "dd:mm:yyyy")
date1 = CDate(TextBox19.Text)
date2 = CDate(TextBox26.Text)

anzahlTage = Abs(date1 - date2)
Worksheets("Tabelle1").Cells(1, 1) = anzahlTage 'zur Kontrolle anzeigen

SpalteMax = Worksheets("Tabelle1").Cells(4, Columns.Count).End(xlToLeft).Column
For Spalte = 5 To SpalteMax

If datumgegeben = datumgesucht Then
j = Spalte
For i = 0 To anzahlTage
Worksheets("Tabelle1").Cells(6, j).Interior.ColorIndex = 5
j = Spalte + 1
Next i

'Kommentar hinzufügen
Set myCom = Worksheets("Tabelle1").Cells(6, Spalte).AddComment
myCom.Visible = True
myCom.Text Text:="blabla"
myCom.Shape.LockAspectRatio = msoTrue
myCom.Shape.Height = 15
myCom.Shape.Width = 25
myCom.Shape.IncrementTop 6.75
myCom.Shape.Fill.ForeColor.SchemeColor = 5
End If

Next Spalte

Vielen Dank und schöne Grüße



  

Betrifft: Es ist noch nicht leichter geworden, zu helfen... von: Michael (migre)
Geschrieben am: 01.07.2015 13:48:03

Hallo!

Dir wurden ja im vorigen Thread (https://www.herber.de/forum/archiv/1432to1436/t1433978.htm#1433978) schon Hinweise gegeben, dass es zB leichter wäre Dir zu helfen, wenn Dein gesamter Code bzw. eine Beispielmappe vorhanden wäre. Es ist nun in diesem Thread nicht leichter geworden, zumal sich Dein Code schwer liest, und tlw. widersprüchlich zu Deiner Frage erscheint.

Aber von dem was ich verstanden habe, hier mal ein Beispiel um mittels Userform Zellen farblich zu "markieren": https://www.herber.de/bbs/user/98575.xlsm

Müsstest versuchen, das auf Dein Projekt umzulegen, oder Du zeigst nochmal konkreter was Du hast/willst.

Lg
Michael


  

Betrifft: AW: Es ist noch nicht leichter geworden, zu helfen... von: Juli
Geschrieben am: 01.07.2015 15:21:06

Vielen Dank,

der Code ist super! Sowas hab ich gebraucht...leider kann ich überhaupt kein vba, und tu mich noch schwer.

Werde ihn heute Abend bei mir anpassen. Hoffentlich schaff ichs! :D


  

Betrifft: Gerne! Du kannst Dich ja nochmal melden, LG M owT von: Michael (migre)
Geschrieben am: 01.07.2015 15:39:09

.


  

Betrifft: AW: Gerne! Du kannst Dich ja nochmal melden, LG M owT von: Juli
Geschrieben am: 02.07.2015 16:50:37

Hallo,

der Code hat super geklappt! Siehe da :)

https://www.herber.de/bbs/user/98605.xls

Ich hab aber sehr sehr viele Textboxen, die diese Fkt aufrufen,
ist das mit einer Schleife realisierbar?

Viele Grüße

Jul


  

Betrifft: Freut mich, aber... von: Michael (migre)
Geschrieben am: 03.07.2015 10:05:39

Hallo Juli,

... Deine neue Frage verstehe ich leider nicht. Ist doch egal wie oft Du auf eine Routine zugreifst; wo willst Du hier noch eine Schleife setzen?

Evtl. kannst Du das noch etwas erläutern...

LG
Michael


  

Betrifft: AW: Freut mich, aber... von: Juli
Geschrieben am: 03.07.2015 12:11:55

hey Michael,

sorry, falls ich so unverstänlich war...

also ich habe einige TextBoxen die die selbe Funktion aufrufen

MarkiereDatumsbereich TextBox1.Value, TextBox2.Value
MarkiereDatumsbereich TextBox3.Value, TextBox4.Value
MarkiereDatumsbereich TextBox5.Value, TextBox6.Value

Hätte das gern in einer Schleife

For i=1 To i=3
For j=4 To j=6
MarkiereDatumsbereich Textbox&i.Value, Textbox&j.Value
'oder wie man auch immer da das i und j einsetzt
Nex j
Next i

So stimmt das ja nicht ganz...da er ja doch erst j durchläuft dann wieder i hochzählt...Das wären ja dann 9 Schleifendurchläufe....

Ich hab im Internet nach sowas gesuch:

For i=1 To i=3 And j=4 To j=6
MarkiereDatumsbereich Textbox&i.Value, Textbox&j.Value
'oder wie man auch immer da das i und j einsetzt
Nex i, j

Hoffe du weißt was ich mein?

Viele Grüße
JULI


  

Betrifft: Da fällt mir aktuell nichts dazu ein... von: Michael (migre)
Geschrieben am: 06.07.2015 10:23:20

Juli,

sorry. So wie Du geschrieben hast kannst Du keine Schleife setzen; gerade bei UserForms ist sowas recht komplex, Du müsstest jedes Steuerelement (das sind nicht nur TextBoxen) auf der jeweiligen Seite Deiner MultiPage durchgehen, und prüfen ob das ein TextBox-Typ ist und dann noch identifizieren ob das ein Von oder Bis-Datum ist. Das ist mir an der Stelle zu komplex, daher steig ich hier aus.

Evtl. überlegst Du Dir einen anderen Aufbau der UserForm (evtl. mit Rahmen arbeiten?) oder legst für jedes Von-Bis-Paar eine eigene Routine (DatumMarkieren) an und übergibst die jeweils richtigen Daten aus den exakt bezeichneten TextBoxen.

Was evtl. noch denkbar wäre, ist die Von/Bis-Daten in einer Inputbox abzufragen (und die entspr. Bereiche zu markieren), und zwar solange bis keine Daten mehr eingegeben werden. Aber das nur als Idee!

Viel Erfolg noch!
Michael


  

Betrifft: VBA? von: RPP63
Geschrieben am: 01.07.2015 13:50:44

Hallo!
Wie wäre es mit bedingter Formatierung?
http://www.online-excel.de/excel/singsel.php?f=81

Dies kann man ja in ein Makro implementieren, indem man die Werte der UserForm in (ausgeblendete?) Zellen schreibt.

Gruß Ralf


  

Betrifft: AW: VBA? von: Juli
Geschrieben am: 01.07.2015 15:23:02

Vielen Dank!
Wollte eben VBA lernen und hab es deswegen über VBA gemacht.
Aber werde das auch mal versuchen!


 

Beiträge aus den Excel-Beispielen zum Thema "Schleife um Zellen zu markieren"