Herbers Excel-Forum - das Archiv

if mit 2 Bedingungen im VBA ?

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!

Die Datei https://www.herber.de/bbs/user/18376.xls wurde aus Datenschutzgründen gelöscht

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
Excel-Beispiele zum Thema "if mit 2 Bedingungen im VBA ?"
Wert aus Spalte C, wenn Spalten A und B Bedingungen erfüllen Beim Erfüllen einer Bedingungen Farbe für 1 Minute
Anzahl von Werten nach verschiedenen Bedingungen. Zeilen zählen, in denen zwei Bedingungen zutreffen
Dem Zellkontextmenü ein Menü "Zahlungsbedingungen" hinzufügen Zelle markieren, wenn zwei Bedingungen erfüllt sind