VBA Skript - Update Problem

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox
Bild

Betrifft: VBA Skript - Update Problem
von: Daniel
Geschrieben am: 11.10.2003 22:27:13

Hallo Zusammen

OliveR hat mir folgendes Skript für mein Problem gegeben:


Private Sub Worksheet_Change(ByVal Target As Range)
Dim i%
If Intersect(Target, Range("F13")) Is Nothing Then Exit Sub
If Target.Value = "Automatisch" Then
    For i = 13 To 24 Step 1
        Cells(i, 24) = Cells(i, 19)
    Next i
ElseIf Target.Value = "Manuell" Then
    Range("X13:AA24").ClearContents
    MsgBox ("Bitte geben Sie die Sendungen pro Monat manuell ein")
ElseIf Target.Value <> "" Then
    MsgBox ("Automatisch oder Manuell wählen")
    Range("F13").ClearContents
    Range("F13").Select
End If
End Sub


Sie funktioniert auch prächtig, allerdings wenn F13 auf Automatisch ist und ich die Zellen (13,19) - (24,19) ändere, werden die Zahlen in den Zellen (13,19) - (24,19) nicht automatisch geupdatet, nur dann wenn ich F13 wieder auf Automatisch stelle (ist ein Gültigkeit/Daten Dropdown).

Gibt es eine Lösung dafür das die Zellen bei einer Änderung der Quelle auch automatisch dementsprechend geändert werden. Vielen Dank im voraus

Daniel.
Bild


Betrifft: AW: VBA Skript - Update Problem
von: Reinhard
Geschrieben am: 12.10.2003 03:59:49

Hi Daniel,
die If-formel If Intersect(Target, Range("F13")) Is Nothing Then Exit Sub
prüft nur Zelle F13, wenn du woanders was änderst greift das Makro nicht.
Also ändere bitte das ab in
If Intersect(Target, Range("F13")) Is Nothing or _
Intersect(Target, Range(cells(13,19),cells(24,19)) Is Nothing Then Exit Sub
Gruß
Reinhard


Bild


Betrifft: Noch Offen - VBA Skript - Update Problem
von: Daniel
Geschrieben am: 12.10.2003 20:43:16

Hallo Reinhard

Vielen Dank

Ich habe es probiert und
If Intersect(Target, Range("F13")) Is Nothing or _
Intersect(Target, Range(cells(13,19),cells(24,19))) Is Nothing Then Exit Sub eingeben.

Allerdings funktioniert das ganze Makro danach nicht mehr.

Ich vermutte es hat was "If Target.Value = "Automatisch"" zu tun, da ja nicht mehr nur ein Target da ist, ich habe aber keine Ahnung wie ich das Problem lösen soll, vielleicht ist es auch etwas ganz anderes.

Danke für deine Hilfe!!!

Daniel


Bild


Betrifft: Fehler bei mir
von: Reinhard
Geschrieben am: 12.10.2003 23:35:57

Hi daniel,
so müßte es klappen, habs nicht getestet.
Gruß
Reinhard


Private Sub Worksheet_Change(ByVal Target As Range)
Dim i%
If Intersect(Target, Range("F13")) Is Nothing or _
Intersect(Target, Range(cells(13,19),cells(24,19))) Is Nothing Then Exit Sub
If Range("F13").Value = "Automatisch" Then
    For i = 13 To 24 Step 1
        Cells(i, 24) = Cells(i, 19)
    Next i
ElseIf Range("F13").Value = "Manuell" Then
    Range("X13:AA24").ClearContents
    MsgBox ("Bitte geben Sie die Sendungen pro Monat manuell ein")
ElseIf Range("F13").Value <> "" Then
    MsgBox ("Automatisch oder Manuell wählen")
    Range("F13").ClearContents
    Range("F13").Select
End If
End Sub



Bild


Betrifft: AW: Fehler bei mir
von: Daniel
Geschrieben am: 12.10.2003 23:46:14

Hallo Reinhard

Leider funktioniert es immer noch nicht, könnte ich was falsch gemacht haben???

Bei einem Wechsel von automatisch auf manuell geht gar nichts.

Vielen vielen dank

Daniel.


Bild


Betrifft: jetzt aber :-)
von: Reinhard
Geschrieben am: 13.10.2003 19:29:08

Hallo Daniel,
ich hatte or anstatt and genommen.
Gruß
Reinhard


Private Sub Worksheet_Change(ByVal Target As Range)
'If Merker = True Then Exit Sub
If Intersect(Target, Range("F13")) Is Nothing And _
    Intersect(Target, Range(Cells(13, 19), Cells(24, 19))) Is Nothing Then Exit Sub
    'Merker=True
    If Range("F13").Value = "Automatisch" Then
        Merker = True
        Range(Cells(13, 19), Cells(24, 19)).Copy _
                            Destination:=Range(Cells(13, 24), Cells(24, 24))
    ElseIf Range("F13").Value = "Manuell" Then
        Range("X13").Select
        MsgBox ("Bitte geben Sie die Sendungen pro Monat manuell ein")
        Range("X13:AA24").ClearContents
    ElseIf Range("F13").Value <> "" Then
        Range("F13").Select
        MsgBox ("Automatisch oder Manuell wählen")
        Range("F13").ClearContents
End If
'Merker = False
End Sub



Bild


Betrifft: Vielen Dank!
von: Daniel
Geschrieben am: 15.10.2003 13:27:41

Hi Reinhard


PERFEKT!!!

Vielen vielen Dank!


 Bild

Beiträge aus den Excel-Beispielen zum Thema " VBA Skript - Update Problem"