String mit If-Bedingung auslesen
Moderator: Moderatoren
String mit If-Bedingung auslesen
Hallo!
Das folgende Makro funktioniert nicht.
Kann mir jemand helfen?
sub Testmakro
Dim BKBPruef as string
Dim BKBKontrolle as boolean
'in Zelle B119 steht "ja"
BKBPruef = ThisComponent.currentcontroller.activesheet.getCellRangeByName("$B$119").string
If BKBPruef = "ja" Then
BKBKontrolle = True
Else
BKBKontrolle = False
End If
msgbox "BKBPruef im Modul LangBerKUH2008_3 lautet: " & BKBPruef
msgbox "BKB Kontrolle: " &BKBkontrolle
'Auch wenn der Eintrag in Zelle B119
' "ja" lautet und die erste Meldung das
' auch so anzeigt
' zeigt die zweite Meldung in OpenOffice,
' dass BKBKontrolle = False ist.
'Wie kann das?
'Muss man in OpenOffice Zeichenfolgen
'anders abfragen, indem bspw. der ASCII-Code
'verwendet wird?
end sub
Grüße
Uli_neu
Das folgende Makro funktioniert nicht.
Kann mir jemand helfen?
sub Testmakro
Dim BKBPruef as string
Dim BKBKontrolle as boolean
'in Zelle B119 steht "ja"
BKBPruef = ThisComponent.currentcontroller.activesheet.getCellRangeByName("$B$119").string
If BKBPruef = "ja" Then
BKBKontrolle = True
Else
BKBKontrolle = False
End If
msgbox "BKBPruef im Modul LangBerKUH2008_3 lautet: " & BKBPruef
msgbox "BKB Kontrolle: " &BKBkontrolle
'Auch wenn der Eintrag in Zelle B119
' "ja" lautet und die erste Meldung das
' auch so anzeigt
' zeigt die zweite Meldung in OpenOffice,
' dass BKBKontrolle = False ist.
'Wie kann das?
'Muss man in OpenOffice Zeichenfolgen
'anders abfragen, indem bspw. der ASCII-Code
'verwendet wird?
end sub
Grüße
Uli_neu
Re: String mit If-Bedingung auslesen
Hallo!
Ich kann keinen Fehler entdecken, funktioniert bei mir fehlerfrei. Hast Du auch die Groß- und Kleinschreibung beachtet?
Eine kleine Bitte. Schreibe Deine Beiträge bitte nicht in Starbasic, sondern direkt im Beitragsfenster. Code bitte in den Codetag. Das sieht dann im Beitrag besser aus. Siehe FAQ.
Ich kann keinen Fehler entdecken, funktioniert bei mir fehlerfrei. Hast Du auch die Groß- und Kleinschreibung beachtet?
Eine kleine Bitte. Schreibe Deine Beiträge bitte nicht in Starbasic, sondern direkt im Beitragsfenster. Code bitte in den Codetag. Das sieht dann im Beitrag besser aus. Siehe FAQ.
Windows 7 Home Premium (auf Acer Desktop PC)
Windows 8 Professional (auf Microsoft Surface Pro 3).
MSO 365 Home Premium
LibreOffice 4.2.
F-Secure Internet Security
- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
Re: String mit If-Bedingung auslesen
Uli_Neu hat geschrieben:' zeigt die zweite Meldung in OpenOffice,
' dass BKBKontrolle = False ist.
Kann ich nicht bestätigen (OOo 2.3.1/WinXP).
Code läuft wie erwartet: Zellinhalt ja dann TRUE, sonst FALSE
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Re: String mit If-Bedingung auslesen
Hallo!
Das Makro "haargenau so geschrieben"
funktioniert auch auf dem Laptop nicht
und zeigt trotz erster Meldung "ja" in
der zweiten Meldung "false" an.
Woran kann sowas liegen?
Ich martere mir ebenfalls den Kopf
Schöne Grüße
Uli_Neu
Das Makro "haargenau so geschrieben"
funktioniert auch auf dem Laptop nicht
und zeigt trotz erster Meldung "ja" in
der zweiten Meldung "false" an.
Woran kann sowas liegen?
Ich martere mir ebenfalls den Kopf
Schöne Grüße
Uli_Neu
Re: String mit If-Bedingung auslesen
Bist Du sicher, dass das Ja in der Zelle klein geschrieben ist und nicht groß? Wenn das Ja groß geschrieben ist, dann bleibt Deine Boolean-Variable False, da hier zwischen Groß- und Kleinschreibung unterschieden wird. Versuche mal die folgende Zeile: If BKBPruef = "ja" or BKBPruef = "Ja" Then
Windows 7 Home Premium (auf Acer Desktop PC)
Windows 8 Professional (auf Microsoft Surface Pro 3).
MSO 365 Home Premium
LibreOffice 4.2.
F-Secure Internet Security
Re: String mit If-Bedingung auslesen
Hallo und Danke für Eure Hilfe.
Es muss wohl irgendwie an der Datei selbst liegen.
In einer anderen Datei kopiert funktioniert das
Makro einwandfrei.
Ich versuche den Fehler zu finden und poste
das Ergebnis hier.
Grüße
Uli_Neu
Es muss wohl irgendwie an der Datei selbst liegen.
In einer anderen Datei kopiert funktioniert das
Makro einwandfrei.
Ich versuche den Fehler zu finden und poste
das Ergebnis hier.
Grüße
Uli_Neu
Re: String mit If-Bedingung auslesen
Hallo!
Ich glaube, der Fehler ist gefunden.
In der Tabelle war die Zelle mit dem Eintrag "ja"
als Zahl formatiert.
Scheinbar deshalb konnte der Basic-Code darauf
nicht als string zugreifen.
Gar nicht so einfach, darauf zu kommen.
Grüße
Uli_Neu
Ich glaube, der Fehler ist gefunden.
In der Tabelle war die Zelle mit dem Eintrag "ja"
als Zahl formatiert.
Scheinbar deshalb konnte der Basic-Code darauf
nicht als string zugreifen.
Gar nicht so einfach, darauf zu kommen.
Grüße
Uli_Neu
- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
Re: String mit If-Bedingung auslesen
Nein, das kann es nicht sein (getestet mit OOo 2.4.1/Linux).
Ich vermute, dass vielleicht ein Leerzeichen mit in der Zelle ist.
Teste mit
oder nutze bei der Auswertung des Inhalts TRIM( BKBPruef )
Ich vermute, dass vielleicht ein Leerzeichen mit in der Zelle ist.
Teste mit
Code: Alles auswählen
MsgBox "Länge der Zelle: " & LEN( BKBPruef )
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Re: String mit If-Bedingung auslesen
Hallo Winfried!
Doch - genau daran liegt es.
Ich habe mir die größere Tabelle
vorgenommen und u. a. die Zelle B119
(war wohl während der Bearbeitung in Excel
mal auf Zahl formatiert gewesen) als Text
umformatiert. ... und jetzt klappt das Makro.
Keine Leerstelle, keine Groß- und Kleinschreibung.
In MS-Excel hatte das nie ein Problem verursacht.
Trotzdem schönen Dank und viele Grüße
Uli_Neu
Doch - genau daran liegt es.
Ich habe mir die größere Tabelle
vorgenommen und u. a. die Zelle B119
(war wohl während der Bearbeitung in Excel
mal auf Zahl formatiert gewesen) als Text
umformatiert. ... und jetzt klappt das Makro.
Keine Leerstelle, keine Groß- und Kleinschreibung.
In MS-Excel hatte das nie ein Problem verursacht.
Trotzdem schönen Dank und viele Grüße
Uli_Neu
Re: String mit If-Bedingung auslesen
1. Auch bei mir funktioniert das Makro unabhängig von der Formatierung. Ob Zahl oder Text, es funktioniert immer.
2. Excel ist nicht OOo. Excel erkennt automatisch, ob es ein String oder ein Value ist. Nur unter bestimmten Voraussetzungen muss man in Excel das Argument Text nutzen. In der Regel genügt aber Value. OOo dagegen unterscheidet meist explizit zwischen String (Text) und Value (Zahl).
3. Welche Version hast Du?
2. Excel ist nicht OOo. Excel erkennt automatisch, ob es ein String oder ein Value ist. Nur unter bestimmten Voraussetzungen muss man in Excel das Argument Text nutzen. In der Regel genügt aber Value. OOo dagegen unterscheidet meist explizit zwischen String (Text) und Value (Zahl).
3. Welche Version hast Du?
Windows 7 Home Premium (auf Acer Desktop PC)
Windows 8 Professional (auf Microsoft Surface Pro 3).
MSO 365 Home Premium
LibreOffice 4.2.
F-Secure Internet Security
- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
Re: String mit If-Bedingung auslesen
Das spielt hier keine Rolle. .getString() holt auch bei einer mit Wert besetzten, als ZAHL formatierten Zelle was raus (Rückgabe ist vom Typ STRING, zeigt aber auch den num. Inhalt).mumpel hat geschrieben:OOo dagegen unterscheidet meist explizit zwischen String (Text) und Value (Zahl)
42, als Zahl formatiert .getString() ergibt 42
39673, als Datum formatiert (Anzeige: 12.08.08), ergibt bei .getString() 39673
ja, als Zahl formatiert, ergibt bei .getValue() Null.
MIt .getString() kommt bei DIr, mumpel, und bei mir eben das heraus, was wir alle drei erwarten.
@Uli
Welche OOo Version?
Welches Dateiformat (ich teste mit *.ods)?
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Re: String mit If-Bedingung auslesen
Hallo!
Es handelt sich bei der von mir bearbeiteten
Datei um eine Excel Arbeitsmappe, die ich in
OpenOffice 2.4.1 als ods-Datei abgespeichert
habe.
Die Zelle B119 enthielt einen Texteintrag "ja",
die Zelle war aber in Excel (warum auch immer)
als Zahl formatiert worden.
Nachdem ich jetzt die Zelle B119 in OpenOffice
als Text formatiert habe, funktioniert das Makro.
An dem Eintrag selbst habe ich nichts geändert.
Ich kann mir das auch nicht wirklich erklären.
Ob das Problem nur auftritt, wenn man Excel-
Dateien im ods-Format speichert? Ich werde mich
des Problems annehmen, aber im Moment fehlt
mir leider die Zeit.
Schönen Dank für Eure Hilfe.
Gruß
Uli_Neu
Es handelt sich bei der von mir bearbeiteten
Datei um eine Excel Arbeitsmappe, die ich in
OpenOffice 2.4.1 als ods-Datei abgespeichert
habe.
Die Zelle B119 enthielt einen Texteintrag "ja",
die Zelle war aber in Excel (warum auch immer)
als Zahl formatiert worden.
Nachdem ich jetzt die Zelle B119 in OpenOffice
als Text formatiert habe, funktioniert das Makro.
An dem Eintrag selbst habe ich nichts geändert.
Ich kann mir das auch nicht wirklich erklären.
Ob das Problem nur auftritt, wenn man Excel-
Dateien im ods-Format speichert? Ich werde mich
des Problems annehmen, aber im Moment fehlt
mir leider die Zeit.
Schönen Dank für Eure Hilfe.
Gruß
Uli_Neu
Re: String mit If-Bedingung auslesen
Hallo liebe Forum-Gemeinde!
Also ich habe mich noch einmal um das Problem
gekümmert und bleibe dabei.
Eine aus Excel übernommene Datei, die in Zellen,
die in Excel als Zahl (Währung) formatiert worden sind,
Texteinträge enthält, liefert bei folgendem Makro ein
falsches Ergebnis.
Erst nachdem ich die Zellen in OpenOffice 2.4.1. als
Text oder Standard formatiert habe, lief das Makro
korrekt.
Vorher lautet das Ergebnis: ja, Len = 3, Trimm = xxjaxx
Nach Formatierung der Zelle in OpenOffice 2.4.1
- glaubt mir, es wahr kein Leerzeichen in der Zelle -:
ja, Len = 2, Trimm = xxjaxx
Ich kann´s selbst kaum glauben.
Grüße
Uli_Neu
Also ich habe mich noch einmal um das Problem
gekümmert und bleibe dabei.
Eine aus Excel übernommene Datei, die in Zellen,
die in Excel als Zahl (Währung) formatiert worden sind,
Texteinträge enthält, liefert bei folgendem Makro ein
falsches Ergebnis.
Erst nachdem ich die Zellen in OpenOffice 2.4.1. als
Text oder Standard formatiert habe, lief das Makro
korrekt.
Code: Alles auswählen
option explicit
sub TextAuslesen
dim TXT as string
TXT=ThisComponent.CurrentController.ActiveSheet.getCellRangeByName("B68").string
msgbox TXT
if TXT = "ja" Then
msgbox "Bedingung trifft zu"
else
msgbox "Bedingung trifft nicht zu"
end if
MsgBox "Länge der Zelle: " & LEN(TXT)
Msgbox "Auswertung des Inhalts: xx" & TRIM(TXT)&"xx"
end sub
Nach Formatierung der Zelle in OpenOffice 2.4.1
- glaubt mir, es wahr kein Leerzeichen in der Zelle -:
ja, Len = 2, Trimm = xxjaxx
Ich kann´s selbst kaum glauben.
Grüße
Uli_Neu