Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

EXCEL VBA Farbcode Durchstreichen MSG BOX
#31
Neu Version neues Glück :32:

Sub EinfärbenZwei()
Dim z As Long
Dim zm As Long

With Tabelle1
    zm = .Cells(Rows.Count, 1).End(xlUp).Row
    'Tabelle auf Standardformatierung zurücksetzen
    With .Range("A5:J" & zm)
        .Interior.ColorIndex = xlNone
        .Font.Color = vbBlack
        .Font.Strikethrough = False
    End With
   
        For z = 5 To zm
       
        If .Range("H" & z).Value <> "" Then
            Datum = InputBox("Geben Sie ein Datum ein:  (TT.MM.JJJJ)")
            .Range("I" & z).Value = Datum
            Ersatz = InputBox("Durch welches Formular wird das Formular ersetzt?")
            .Range("J" & z).Value = Ersatz
            With .Range("A" & z, "G" & z)
                .Interior.Color = vbRed
                .Font.Color = vbWhite
                .Font.Strikethrough = True
            End With
            .Range("G" & z).Value = "ersetzt"
               
            ElseIf .Cells(z, 1).Value = .Cells(z + 1, 1).Value Then
                .Range("A" & z, "G" & z).Interior.Color = vbRed
                .Range("G" & z).Value = "ausgelaufen"
           
            Else
                .Range("A" & z).Interior.Color = vbGreen
                .Range("B" & z).Interior.Color = vbGreen
                .Range("G" & z).Interior.Color = vbGreen
                .Range("G" & z).Value = "aktiv"
        End If
       
       Next z
End With


VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 12 - mit VBAHTML 12.6.0


Ein Eintrag in Spalte G ist nicht erforderlich.

Gruß
Ich


.xlsm   Hilfe_Ich.xlsm (Größe: 22,52 KB / Downloads: 2)
Antworten Top
#32
(21.09.2016, 12:27)IchBinIch schrieb: Neu Version neues Glück :32:


Ein Eintrag in Spalte G ist nicht erforderlich.

ja also zu 99% perfekt :)

Ds einzige was mir noch aufgefallen ist: er erkennt neue "x" (super) :)

Aber er überschreibt auch die alten Werte. Würde es Sinn machen, abzufragen ob in der Spalte nebendran ein Datum steht? Also if not ""?
S

Swas gibt es doch oder? :)

Also dass er nix verändert wenn bereits etwas eingetragen wurde?

Und anschließend noch die frage ... wenn ich das direkt im Modul einfüge funktioniert das Makro dann auch ohne button? :)
Antworten Top
#33
Ja das geht. Aber heute nicht mehr  :21:
Antworten Top
#34
(21.09.2016, 19:13)IchBinIch schrieb: Ja das geht. Aber heute nicht mehr  :21:

Hehe :).  Kein Problem.

Ih wollte es mit einer if not Abfrage abfangen und dann ein goto einsetzen, aber dsnn meckert er bei dem elseIf weiter unten :(
Antworten Top
#35
(21.09.2016, 19:13)IchBinIch schrieb: Ja das geht. Aber heute nicht mehr  :21:

Bevor ich es vergesse ... hab den Sprung jetzt gemacht .... würde theoretisch auch funktionieren .... ABER da du am anfang die Tabelle farblich zurücksetz (finde ich eine gute idee) greift natürlich mein befehlt bzgl.  If "i" <> "" then goto :)

Also macht er keine abfrage mehr bzgl datum / Formular was ja gut ist, aber die farbe ist eben auch weg :)



Und wahrscheinlich sagst du bestimmt auch .... keine sprünge machen Tongue
Antworten Top
#36
Manchmal muss man springen :32:

Kommentier einfach den 1. With-Block aus.
Dann wird nichts zurück gesetzt.
Antworten Top
#37
(21.09.2016, 19:54)IchBinIch schrieb: Manchmal muss man springen :32:

Kommentier einfach den 1. With-Block aus.
Dann wird nichts zurück gesetzt.


Hatte ich auskommentiert .... aber ich finde die idee echt gut.

Ich versuche gerade die werte wieder zu streichen und rot zu färben wenn bereits was drin steht, aber dann kolidiert es mit dem goto befehl .... vba .. eine hassliebe ,:)
Antworten Top
#38
Du willst prüfen ob nebenan kein Datum steht?

Dann teste mal so

Code:
If .Range("H" & z).Value = "x" And Not IsDate(.Range("I" & z)) Then
Antworten Top
#39
(21.09.2016, 20:49)IchBinIch schrieb: Du willst prüfen ob nebenan kein Datum steht?

Dann teste mal so

Code:
If .Range("H" & z).Value = "x" And Not IsDate(.Range("I" & z)) Then

Ne hängt er sich auf
Antworten Top
#40
(21.09.2016, 21:08)freeloader1986 schrieb: Ne hängt er sich auf

Quäl dich heut nimmer unötig weiter.

Hbs mit deiner formel auch nochmal probiert ... auch nochmal angeschrieben auf deine formel aber dann führt er ned weiter aus
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste