if mit 2 Bedingungen im VBA ?

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

Betrifft: if mit 2 Bedingungen im VBA ? von: Korl
Geschrieben am: 20.02.2005 10:59:50

Hallo,

VBA ist doch immer wieder eine Hürde für mich. :-((

If Worksheets("Druck").Range("$G$1") = 2000 & Range("K1").Value größer Range("K1") Then
MsgBox ("Das Jahr ist nicht vorhanden! ")
End If

Wenn in G1 = 2000 soll Makro anhalten
wenn der Wert in K1 , größer ist als K1, dann Makro anhalten. (klingt wie Zirkelbezug)

Geht das überhaupt?

Gruß Korl

Bild


Betrifft: AW: if mit 2 Bedingungen im VBA ? von: Thom@sCH
Geschrieben am: 20.02.2005 11:06:27

Hallo Korl

...wenn der Wert in K1 , größer ist als K1, dann Makro anhalten. (klingt wie Zirkelbezug)?

Was ist das für eine Bedingung?

Gruss Thomas


Bild


Betrifft: AW: if mit 2 Bedingungen im VBA ? von: Cardexperte
Geschrieben am: 20.02.2005 11:08:46

Hello korl, also als erstes das & mit or ersetzen, wenn du willst dass bei 2000 oder bei dem 2. Kriterium angehalten wird.
zum 2. Kriterium k1 ist immer =k1, also dies Krit ist unsinnig, muss anders festgelegt werden, ohne Kenntnis was in k1 passiert, kann nichts dazu gesagt werden!
Gruss WS


Bild


Betrifft: AW: if mit 2 Bedingungen im VBA ? von: Korl
Geschrieben am: 20.02.2005 11:32:40

Hallo Thom@sCH und Cardexperte,

Danke für Eure Mühe, ich habe die Nacht zulange am Computer gesessen ;-(

Sorum sollte es besser aussehen:
If Worksheets("Druck").Range("$G$1") = 2000 Or Range("G1") größer Range("K1") Then
MsgBox ("Das Jahr ist nicht vorhanden! ")
End If

Bei der 1. Bedingung hält das Makro an aber nicht bei der 2. Bedingung.

Was habe ich jetzt noch falsch?

Gruß Korl


Bild


Betrifft: AW: if mit 2 Bedingungen im VBA ? von: Thom@sCH
Geschrieben am: 20.02.2005 11:49:08

Hallo Korl

So etwas:


Sub Jahr()
    If Worksheets("Druck").Range("$G$1").Value = 2000 Then Exit Sub
    If Worksheets("Druck").Range("$G$1") > Worksheets("Druck").Range("$K$1").Value Then
    MsgBox ("Das Jahr ist nicht vorhanden! ")
    End If
End Sub


Gruss Thomas


Bild


Betrifft: AW: if mit 2 Bedingungen im VBA ? von: Korl
Geschrieben am: 20.02.2005 12:16:30

Hallo Thomas,

die 2. Bedingung läuft immer noch durch.

Gruß Korl


Bild


Betrifft: AW: if mit 2 Bedingungen im VBA ? von: Cardexperte
Geschrieben am: 20.02.2005 12:12:26

Hello Korl,
schreib mal bei der 2. Bedingung auch noch Worksheet usw. davor.
Gruss WS


Bild


Betrifft: AW: if mit 2 Bedingungen im VBA ? von: Korl
Geschrieben am: 20.02.2005 12:26:22

Hallo Thomas und WS,

ich habe es jetzt hinbekommen, Juhuuuu :-))


Sub test2()
If Worksheets("Druck").Range("$G$1").Value = 2000 Then
    MsgBox ("Das Jahr ist nicht vorhanden! ")
    End If
    If Worksheets("Druck").Range("$G$1") > Worksheets("Druck").Range("$K$1").Value Then
    MsgBox ("Das Jahr ist nicht vorhanden! ")
    Exit Sub
    End If
End Sub


Nochmals Danke Euch beiden!

Gruß Korl


Bild


Betrifft: Gratuliere...!! o.T von: Thom@sCH
Geschrieben am: 20.02.2005 12:27:44

.


Bild


Betrifft: Oh,Oh, Komanndo zurück! von: Korl
Geschrieben am: 20.02.2005 12:37:36

Hallo Thomas,

mit dem obigen Code hält die zweite Bedingung gewollt auch an aber auch für alles.
Soll heißen, dass Makro erfüllt die anderen Aufgaben auch nicht mehr!

Was nun?

Gruß Korl


Bild


Betrifft: AW: Oh,Oh, Komanndo zurück! von: Thom@sCH
Geschrieben am: 20.02.2005 13:17:48

Dann Probier nochmals deine Bedingugen zu formulieren

Hmmm... evtl. Beispielmappe hochladen

Gruss Thomas


Bild


Betrifft: AW: Oh,Oh, Komanndo zurück! von: Helga
Geschrieben am: 20.02.2005 13:23:24

Text:
Dann Probier nochmals deine Name ändern


Bild


Betrifft: AW: Oh,Oh, Komanndo zurück! von: Korl
Geschrieben am: 20.02.2005 13:57:06

Hallo,

ich habe meine Testdatei hochgeladen!

https://www.herber.de/bbs/user/18376.xls

Gruß Korl


Bild


Betrifft: AW: Oh,Oh, Komanndo zurück! von: Thom@sCH
Geschrieben am: 20.02.2005 14:09:26

Du willst also die PivotSeitenfelder setzen, nur wenn diese in der Pivot vorhanden sind, sonst nicht zulassen?

Stimmt die Annahme? Wenn ja, würde ich die PivotSeitenfelder ansprechen.

Gruss Thomas


Bild


Betrifft: AW: Oh,Oh, Komanndo zurück! von: Korl
Geschrieben am: 20.02.2005 14:16:03

Hallo Thomas,

ja, das ist eigentlich auch mein Wunschziel, habs auch schon probiert.
Es löst aber wohl nicht die Ereignisprozedur aus.

Wenn Du eine Möglichkeit siehst, wäre ich Dir nicht bös, wenn Du sie mir
nennen könntest. ;-)

Gruß Korl


Bild


Betrifft: AW: Seitenfelder setzen von: Thom@sCH
Geschrieben am: 20.02.2005 14:34:02

Viel vergnügen.....

https://www.herber.de/bbs/user/18377.xls


Gruss Thomas


Bild


Betrifft: AW:Super schlecht von: Kurt
Geschrieben am: 20.02.2005 14:45:23

Wie soll das gehen


Bild


Betrifft: AW: AW:Super schlecht von: Korl
Geschrieben am: 20.02.2005 16:51:56

Hi Kurt,

ich habe meinen Code im Rahmen meiner Möglichkeiten zusammengebastelt.
Es ist auch nur für den Hausgebrauch. ;-)

Gruß Korl


Bild


Betrifft: AW: Seitenfelder setzen von: Korl
Geschrieben am: 20.02.2005 16:13:17

Hallo Thomas,

das ist ja noch ein ganz anderer Weg. Jetzt ist meine eigentliche 2. Bedingung erfüllt, es hängt aber die 1. Bedingung. Wenn das Jahr 2000 gewählt wird, soll abgebrochen werden, warum, weil in der Pivottabelle in Tabelle(Auswertung) 1 Jahr vorher angezeigt werden soll und diese nicht vorhanden ist.
Dieser Punkt ist hier nicht berücksichtigt worden.

Trotzdem bedanke ich mich wieder für Deine Mühe!

Gruß Korl


Bild


Betrifft: AW: Seitenfelder setzen von: Thom@sCH
Geschrieben am: 20.02.2005 19:18:36

Hallo Korl

Pass den Code einfach an die Bedingung an:


Sub EinstellenSeitenfeld()
    Dim f As PivotField
    Dim pItem As PivotItem
    Dim j As String
    If Worksheets("Druck").Range("G1").Value = 2000 Then
    MsgBox ("Das Jahr ist nicht vorhanden! ")
    Exit Sub
    End If
    j = Worksheets("Druck").Range("G1").Value
    Set f = Worksheets("Druck").PivotTables("PivotTable1").PivotFields("Jahre")
    With f
    For Each pItem In f.PivotItems
        If pItem.Caption = j Then
        .CurrentPage = j
        Call PivotSeitenfeldSetzen
    Exit Sub
    End If
    Next
    End With
    MsgBox "Der Suchbegriff ist nicht in der Liste."
End Sub


Gruss Thomas


Bild


Betrifft: AW: Seitenfelder setzen von: Korl
Geschrieben am: 20.02.2005 20:18:03

Hallo Thomas,

in Tabelle "Druck" ,Zelle "G1" wird jetzt das gemacht was es ursprünglich machen sollte, nur sind wir nun ja einen anderen Weg gelaufen.

Wenn ich nur das Jahr der Pivottabelle in Tabelle "Druck" wechseln wollte, kann ich es doch direkt im Seitenfeld erledigen!

Mein eigentliches Vorhaben ist doch, wenn in dieser Pivottabelle ein Jahr angegeben wird, soll automatisch in der Pivottabelle, Tabelle "Auswertung" 1 Jahr zuvor eingetragen werden.
Also in Tabelle "Druck" = Seitenfeld Jahr = 2003
In Tabelle "Auswertung" = Seitenfeld Jahr = 2002

Warum?
In der Tabelle "Druck" setze ich unterhalb der Pivottabelle noch mal die selber Struktur der Tabelle um dort die Differenzen der Umsätze zum Vorriegen Monat ermitteln zu können.
Um die Differenz z.B. von Dezember 2002 zum Januar 2003 zu ermitteln benötige ich die zweite Tabelle!

Thomas, entschuldige bitte, dass ich Dir soviel Arbeit bereitet habe.

Manchmal gelingt es mir einen Code für meine Bedürfnisse anzupassen aber hier muß ich passen.

Gruß Korl


Bild


Betrifft: AW: Seitenfeld auf 2 Pivot ändern von: Thom@sCH
Geschrieben am: 20.02.2005 20:55:17

Hi Korl,

dann ergänze den Code....


Sub PivotSeitenfeldSetzen()
    Dim Pivot As PivotTable
    Set Pivot1 = Worksheets("Druck").PivotTables("PivotTable1")
        With Pivot1
            .PivotFields("Jahre").CurrentPage = Worksheets("Druck").Range("G1").Value
        End With
    Set Pivot1 = Worksheets("Auswertung").PivotTables("PivotTable1")
        With Pivot1
            .PivotFields("Jahre").CurrentPage = Worksheets("Druck").Range("G1").Value - 1
        End With
End Sub


Gruss Thomas


Bild


Betrifft: AW: Seitenfeld auf 2 Pivot ändern von: Korl
Geschrieben am: 20.02.2005 21:21:48

Hallo Thomas,


Sub PivotSeitenfeldSetzen()
    Dim Pivot As PivotTable
    Set Pivot1 = Worksheets("Druck").PivotTables("PivotTable1")
        With Pivot1
            .PivotFields("Jahre").CurrentPage = Worksheets("Druck").Range("G1").Value
        End With
    Set Pivot1 = Worksheets("Auswertung").PivotTables("PivotTable1")
        With Pivot1
        
'        ************* hier bleibt er stehhen mit Laufzeitfehler 1004
            .PivotFields("Jahre").CurrentPage = Worksheets("Druck").Range("G1").Value - 1
        End With
End Sub


Gruß Korl


Bild


Betrifft: AW: Seitenfeld auf 2 Pivot ändern von: Thom@sCH
Geschrieben am: 20.02.2005 21:31:05

Uups, wieso dass den, habs doch getestet. Probier mal die Datei aus

https://www.herber.de/bbs/user/18398.xls


Bild


Betrifft: aber jetzt! von: Korl
Geschrieben am: 20.02.2005 22:00:05

Hallo Thomas,

ich bin fix und fertig aber glücklich! Aber wie mußt Du Dich wohl fühlen?
Diesen Streß mit mir.

Es läuft genau nach meinen Vorstellungen.

Hab herzlichen Dank für Deine Arbeit!

Gruß Korl


Bild


Betrifft: Danke, mir gehts auch gut...! o.T von: Thom@sCH
Geschrieben am: 20.02.2005 22:01:41

.


 Bild

Beiträge aus den Excel-Beispielen zum Thema "if mit 2 Bedingungen im VBA ?"