Microsoft Excel

Herbers Excel/VBA-Archiv

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

Malen nach Zahlen

Betrifft: Malen nach Zahlen von: Juli
Geschrieben am: 30.06.2015 09:32:19

Hallo,

bei mir gibt er die ganze zeit ein Fehler aus bei dem Code:

"Die Interior-Eigenschaft des Range-Objektes kann nicht zugeordnet werden"

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")
If datumgegeben = datumgesucht Then
While datumgegeben2 <> datumgesucht
Worksheets("Tabelle1").Cells(6, Spalte).Interior.ColorIndex = 5
Wend
End Sub

Die 6te Spalte ist betroffen.

Ich wollte eine whileschleife machen, die mir ab meinem Startdatum so lange meine Zellen in meiner Exceltabelle farblich markiert, bis zum Enddatum.

Grüße

  

Betrifft: AW: Die Variable "Spalte" hat keinen Wert oT von: JoWE
Geschrieben am: 30.06.2015 09:56:12




  

Betrifft: AW: Die Variable "Spalte" hat keinen Wert oT von: Juli
Geschrieben am: 30.06.2015 10:02:21

Ich hab davor mein Spalte so definiert:
(nochmal der komplette Code)

Dim SpalteMax As Long
Dim Spalte As Long
Dim datumgegeben, datumgegeben2, datumgesucht, datumgesucht2 As Variant

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

For Spalte = 5 To SpalteMax

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")
If datumgegeben = datumgesucht Then
While datumgegeben2 <> datumgesucht
Worksheets("Tabelle1").Cells(6, Spalte).Interior.ColorIndex = 5
Wend
End Sub


  

Betrifft: AW: so gehts jedenfalls nicht... von: JoWE
Geschrieben am: 30.06.2015 10:59:13

.. da fehlt zumindest mal ein "end if" und ein "next"

Hallo Juli,
vllt. solltest Du mal die Arbeitsmappe hochladen.

Gruß
Jochen


  

Betrifft: AW: so gehts jedenfalls nicht... von: Juli
Geschrieben am: 30.06.2015 12:52:45

Leider momentan nicht möglich. Heut Abend könnte ich es hochladen.
Hab jetzt noch einiges Verbessert. Der Code funktioniert, aber es werden nur 2 Zellen markiert.

Hier der neue 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 intRow

'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


wenn ich in meine Textbox19 den 01.02.2015 und in meine Textbox26 den 01.03.2015 eingebe
wird die Zelle (in Spalte 6) , die den Wert 01.02.2015 und die nächste Zelle markiert. Danach nichts mehr.

Viele Grüße und Danke für die Hilfe
juli


  

Betrifft: AW: so gehts jedenfalls immer noch nicht... von: JoWE
Geschrieben am: 30.06.2015 13:30:31

Juli,

sorry, aber wieder kein kompletter Code!
Warum "For i" aber dann "Next intRow", würde mich wundern wenn dein Makro ohne Fehler liefe.

Ich bin für heute raus, stelle Deine Frage wieder offen.

Gruß
Jochen


  

Betrifft: AW: Die Variable "Spalte" hat keinen Wert oT von: Juli
Geschrieben am: 30.06.2015 10:36:56

Kann ich das auch anders umsetzten?
datumgegeben1 und 2 werden über ein Textfeld in einer UserBox eingegeben


 

Beiträge aus den Excel-Beispielen zum Thema "Malen nach Zahlen"