Thema Datum  Von Nutzer Rating
Antwort
Rot Makro automatisch ausführen/ Subs fusionnieren
15.05.2019 14:04:21 Louisa
NotSolved
15.05.2019 14:38:32 Gast79191
NotSolved

Ansicht des Beitrags:
Von:
Louisa
Datum:
15.05.2019 14:04:21
Views:
32
Rating: Antwort:
  Ja
Thema:
Makro automatisch ausführen/ Subs fusionnieren

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


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst genau und ausführlich
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
  • Bitte markieren Sie Ihre Anfrage als erledigt wenn Ihnen geholfen wurde
Thema: Name: Email:

 
 

Thema Datum  Von Nutzer Rating
Antwort
Rot Makro automatisch ausführen/ Subs fusionnieren
15.05.2019 14:04:21 Louisa
NotSolved
15.05.2019 14:38:32 Gast79191
NotSolved