Hallo zusammen,
ich lese mich seit ein paar Wochen in die Möglichkeiten des VBA ein und bin auch einiges am rumprobieren.
Leider habe ich den Eindruck, dass mir gänzlich das Grundverständnis für diese Thematik fehlt und ich komme gerade auch nach ausgiebiger Recherche nicht weiter.
Ich habe eine Tabelle, in die ich Angebote, die ich an Kunden rausschicke, eintrage.
In Spalte C steht der "Titel" des Angebots. Ich habe nun einen Code zusammengebastelt, der mir in Spalte G automatisch das heutige Datum einträgt, sobald ich den Titel eingebe, d.h. ein neues Angebot rausschicke. Der sieht wie folgt aus und befindet sich auf dem Tabellenblatt 1, wo die Tabelle liegt:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("C2:C50000")) Is Nothing Then Exit Sub
If Target.Count > 1 Then Exit Sub
If Target = "" Then
Cells(Target.Row, 7).ClearContents
Else:
Cells(Target.Row, 7).Value = Date
End If
End Sub
Nach meiner Recherche sorgt die Kennzeichnung "Worksheet_Change" dafür, dass sich das Ganze automatisch aktualisiert. Das klappt alles soweit.
Wenn ich das Angebot nun unterzeichnet zurück erhalte, trage ich in Spalte I das jeweilige Datum ein, bei Ablehnung des Angebots ein "X" in Spalte J.
Nun möchte ich, dass die Zeile ausgeblendet wird, sobald das Angebot nicht mehr "offen" ist, d.h. entweder in den Spalten "I" oder "J" etwas eingegeben wird.
Das habe ich über folgenden Code (Modul 1) versucht:
Public Sub ausblenden()
Cells.Select
Selection.EntireRow.Hidden = True
Dim n As Integer
For n = 1 To 300
If Cells(n, 9).Text = "" Then
Rows(n).EntireRow.Hidden = False
ElseIf Cells(n, 10).Text = "X" Then
Rows(n).EntireRow.Hidden = True
ElseIf Cells(n, 9).Value = "Date d'acceptation" Then
Rows(n).EntireRow.Hidden = False
End If
Next
Range("A2").Select
End Sub
Das klappt teilweise. Bei Eingabe des Datums in Spalte I wird die jeweilige Zeile ausgeblendet. Um zu vermeiden, dass die Kopfzeile ausgeblendet wird, habe ich folgendes eingefügt:
ElseIf Cells(n, 9).Value = "Date d'acceptation" Then
Rows(n).EntireRow.Hidden = False
Trage ich jedoch ein "X" in Spalte G ein, passiert nichts. Daüber hinaus hätte ich gerne, dass sich das Tabellenblatt bei einer Änderung automatisch aktualisiert und ich das Makro nicht manuell ausführen muss, um die Zellen auszublenden. Ich habe darauffhin versucht beide Codes in dem Sub "Worksheet_Change" zusammenzufassen, dann wurde allerdings gar nichts mehr ausgeblendet, auch bei manueller Ausführung des Makros.
Kann mir jemand einen Tipp geben; wie ich beide Codes in einem Sub zusammenschreiben kann und mir damit das automatische Aktualisieren sowie auch das Ausblenden gelingt?
Ich entschuldige mich im Vorhinein für meine fehlenden Kenntnisse, das mag Experten vielleicht wie das reinste Chaos vorkommen, aber mir fällt es unheimlich schwer, mich da reinzudenken. Seid nicht zu streng mit mir.
Danke für eure Hilfe!
Louisa
|