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

Schleife um Zellen zu markieren

Schleife um Zellen zu markieren
01.07.2015 13:15:57
Juli
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

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Es ist noch nicht leichter geworden, zu helfen...
01.07.2015 13:48:03
Michael
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

Anzeige
AW: Es ist noch nicht leichter geworden, zu helfen...
01.07.2015 15:21:06
Juli
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

Gerne! Du kannst Dich ja nochmal melden, LG M owT
01.07.2015 15:39:09
Michael
.

AW: Gerne! Du kannst Dich ja nochmal melden, LG M owT
02.07.2015 16:50:37
Juli
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

Freut mich, aber...
03.07.2015 10:05:39
Michael
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

Anzeige
AW: Freut mich, aber...
03.07.2015 12:11:55
Juli
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

Anzeige
Da fällt mir aktuell nichts dazu ein...
06.07.2015 10:23:20
Michael
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

Anzeige
VBA?
01.07.2015 13:50:44
RPP63
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

AW: VBA?
01.07.2015 15:23:02
Juli
Vielen Dank!
Wollte eben VBA lernen und hab es deswegen über VBA gemacht.
Aber werde das auch mal versuchen!

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige