Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1804to1808
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA Vergleich Year(Date) mit Range

VBA Vergleich Year(Date) mit Range
21.01.2021 16:44:11
Andrea
Hallo zusammen,
ich habe u. a. folgende Codezeile
If Range("Jahr_SB") 
Range("Jahr_SB") ist 2019. Das Ergebnis der o. g. Prüfung ist lt. Debug.Print "Wahr"
Wieso ergibt
If Range("Jahr_SB") 
lt. Debug.Print "Falsch"?
Mir ist aufgefallen, dass Debug.Print Year(Date) nicht "2021" ergibt, sondern " 2021", also mit Leerschritt vorne. Liegt es daran? Wie kann ich das vermeiden?
Vielen Dank und schöne Grüße
Andrea

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Vergleich Year(Date) mit Range
21.01.2021 17:04:38
Hajo_Zi
Hallo Andrea,
bei mir kommt Masgbox.
Sub n()
If Range("Jahr_SB") 

Zu Deiner Datei kann ich nichts schreiben, was wohl daran liegt das ich nicht auf fremde Rechner schaue.Ich baue keine Datei nach.
Sollte die Datei verlinkt werden?
Wenn du an Stelle einer Demomappe deine Originalmappe hochladen willst, diese aber sensible Daten enthält, kannst du diese Daten
http://www.ms-office-forum.de/forum/showthread.php?t=322895
ändern.
Bilder lade ich mir nicht runter, da Excel damit nichts anfangen kann.
http://www.excel-ist-sexy.de/bilder-statt-datei/
Hochgeladene Bilder können zwar als solche in Excel importiert werden, sind jedoch bei der Lösung von Problemen nicht sehr hilfreich, da man die eigentlichen Daten nicht ohne große und zeitraubende Umwege direkt in die Tabelle übertragen kann.
Das ist nur meine Meinung zu dem Thema.
http://www.excel-ist-sexy.de/bilder-statt-datei/
Hochgeladene Bilder können zwar als solche in Excel importiert werden, sind jedoch bei der Lösung von Problemen nicht sehr hilfreich, da man die eigentlichen Daten nicht ohne große und zeitraubende Umwege direkt in die Tabelle übertragen kann.
Das ist nur meine Meinung zu dem Thema.
Falls Link nicht ausgeführt wird:
1. Link kopieren
2. rechte Maustaste neues Fenter.
3. Umschaltstaste drücken und Klick auf den Link
4. STRG+ Link mit Maus aktivieren

Anzeige
AW: VBA Vergleich Year(Date) mit Range
21.01.2021 17:14:57
Andrea
Hallo Hajo_Zi,
ehrlich gesagt bin ich jetzt genauso schlau wie vorher :-(
Gebe ich deinen Code in meine Datei ein, kommt eben keine Msgbox, weil das Ergebnis der If-Abfrage von VBA leider mit "falsch" ausgegeben wird, statt mit "wahr".
Das ist genau mein Problem. 2019 ist definitiv kleiner als 2021, aber mit der o. g. Codezeile kommt da falsch raus. Wie muss ich die Code-Zeile ändern, das das Ergebnis "wahr" lautet?
Danke und Gruß Andrea
AW: VBA Vergleich Year(Date) mit Range
21.01.2021 17:18:33
Hajo_Zi
Hallo Andrea,
frage jemand der neben Dir sitzt der sieht die Datei.
Die meisten hier sehen Sie nicht.
Da Sie nicht auf Deinen Rechner schauen.
Ich nbinm dann raus.
Viel Erfolg noch.
Gruß Hajo
Anzeige
AW: VBA Vergleich Year(Date) mit Range
21.01.2021 17:23:51
onur
Poste die (Beispiels-) Datei.
AW: VBA Vergleich Year(Date) mit Range
21.01.2021 17:53:10
Andrea
Ich verzweifele.
Die Originaldatei kann ich nicht hochladen, da zu groß und wg. Datenschutz. Deshalb habe ich die Code-Zeile, die dort nicht funktioniert, in der hochgeladenen Datei nachgebaut. Dort geht es plötzlich!?
https://www.herber.de/bbs/user/143205.xlsm
Der Code meiner Originaldatei lautet:
Sub Jahr_für_JahresPlanErlös_an_RA_Einn_anpassen()
Sheets("Jahres-Plan-Erlös").PivotTables("PivotTable1").PivotFields("[Datum].[Jahr].[Jahr]"). _
_
VisibleItemsList = Array("[Datum].[Jahr].&[" & Range("Jahr_SB") & "]")
If Range("Jahr_SB") = 2019 And Range("Jahr_SB") = Year(Date) And Range("Planungscube_aktuell") = "Nein" Then
Sheets("Jahres-Plan-Erlös").Range("D2").FormulaR1C1 = "Nein"
End If
If Range("Jahr_SB") = Year(Date) And Range("Planungscube_aktuell") = "Ja" Then
Sheets("Jahres-Plan-Erlös").Range("D2").FormulaR1C1 = "Ja"
'Bedingte Formatierung für Spalte "Plan-Erlös(2)" in Tabelle "RA-Einn."
Sheets("RA-Einn.").Select
Range("E14:E1000").Select
Selection.FormatConditions.Delete
Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=$G$3=""Nein"""
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1).Font
.ThemeColor = xlThemeColorDark1
.TintAndShade = 0
End With
Selection.FormatConditions(1).StopIfTrue = False
Range("A3").Select
End If
End Sub
Die erste If-Abfrage funktioniert noch, danach nicht mehr ...
Ich hoffe damit könnt ihr jetzt was anfangen.
Nochmals Danke und viele Grüße
Andrea
Anzeige
AW: VBA Vergleich Year(Date) mit Range
21.01.2021 18:04:59
onur
"Ich hoffe damit könnt ihr jetzt was anfangen." - Nein.
Was sollen wir mit einer Beispielsdatei, wo es NICHT funktioniert?
Meine VERMUTUNG: in Range("Jahr_SB") ist ein TEXT, der aussieht wie eine Zahl.
Da in diesem Fall Range("Jahr_SB") als 0 behandelt werden würde, wäre
Range("Jahr_SB") 

auch WAHR, aber
Range("Jahr_SB") > 2000

NICHT.
Nimm stattdesssen überall:
IF VAL(Range("Jahr_SB")) 

oder

IF CLNG(Range("Jahr_SB") 

ODER KORRIGIERE DEN FEHLER.
Anzeige
AW: VBA Vergleich Year(Date) mit Range
22.01.2021 14:00:03
Andrea
Lieber onur,
ich danke dir ganz herzlich
IF VAL(Range("Jahr_SB")) 
war die Lösung!
Das WE ist gerettet :-)
Viele Grüße
Andrea
Gerne !
22.01.2021 14:01:33
onur
AW: VBA Vergleich Year(Date) mit Range
21.01.2021 18:20:36
Yal
Hallo Andrea,
Wenn Range("Jahr_SB") dann ist Range("Jahr_SB") = 2019 Falsch
und Range("Jahr_SB") >= 2019 auch
Wenn die Bedingung sich so schön auschliessen, kann man diese kaskadieren. Auch Prüfungen könnte man in boolsche Variablen lagern, um diese im Schritt-Modus besser sehen zu können (Lokale Fenster öffnen).
Prüfung einer Variable ggü verschiedene Werte kann man mit Select Case strukturieren
Sub Jahr_für_JahresPlanErlös_an_RA_Einn_anpassen()
Dim vor_Date As Boolean
Dim auf_Date As Boolean
Sheets("Jahres-Plan-Erlös").PivotTables("PivotTable1").PivotFields("[Datum].[Jahr]. _ [Jahr] _
").VisibleItemsList = Array("[Datum].[Jahr].&[" & Range("Jahr_SB") & "]")
vor_Date = Range("Jahr_SB") 
VG
Yal
Anzeige
AW: VBA Vergleich Year(Date) mit Range
22.01.2021 14:01:42
Andrea
HAllo Yal,
vielen Dank für deine Mühe. Konnte das Problem beheben.
Gruß Andrea

232 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige