OOo Basic: Problem beim einlesen von Zellen in OOo Calc

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

thiro
Beiträge: 5
Registriert: Di, 08.07.2008 16:57

OOo Basic: Problem beim einlesen von Zellen in OOo Calc

Beitrag von thiro »

Hi,

Code: Alles auswählen

  MsgBox("R: " & R & Chr(13) & "DAT: " & DAT & Chr(13) & "TEX: " & TEX)
  
  DAT = CStr(Date)
  TEX = CStr(Cells(R, 3).Value)
  
  MsgBox("R: " & R & Chr(13) & "DAT: " & DAT & Chr(13) & "TEX: " & TEX)
  
  TEM = CInt((Mid(DAT, 4, 2)) - CInt(Mid(TEX, 4, 2)))
  
  If ( TEM >= 3 ) Then
Die MsgBoxen dienen nur zum debuggen...

DAT = Aktuelles Datum
TEX = Ein altes Datum das in einer Zelle steht (bei Initialisierung das aktuelle Datum)
R = Ein simpler Reihenindex der, in der Schleife, immer um 1 erhöht wird
TEM = Das soll also Demnach das Ergebnis von aktueller Monat - alter Monat sein

Danach kommt nur noch: wenn TEM >= 3 dann...

1tes Problem:
Vor dem Auslesen der Zelle für TEX, steht in TEX das aktuelle Datum: RICHTIG
Nach dem Auslesen der Zelle für TEX, steht in TEX eine 5-Stellige Zahl (39365): FALSCH <-- Warum steht da nicht das alte Datum???

2tes Problem:
Fehlermeldung und Stop des Programms bei TEM-Zeile:
Unzulässiger Wert oder Dateityp.
Dateitypen unverträglich.
Dabei Hab ich doch extra die vielen CInt und CStr Dinger eingebaut damit so ein Fehler nicht vorkommen soll...
Was ist da falsch???
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: OOo Basic: Problem beim einlesen von Zellen in OOo Calc

Beitrag von komma4 »

thiro hat geschrieben:Nach dem Auslesen der Zelle für TEX, steht in TEX eine 5-Stellige Zahl (39365): FALSCH <-- Warum steht da nicht das alte Datum???
...weil die Zelle das Datum 10.Oktober 2007 anzeigt ... und Du dir den nummerischen WAert holst und anzeigen lässt.
Verwechsle nicht Zellinhalt und angezeigtes Format!
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)
thiro
Beiträge: 5
Registriert: Di, 08.07.2008 16:57

Re: OOo Basic: Problem beim einlesen von Zellen in OOo Calc

Beitrag von thiro »

hm und die Lösung für das Problem??? Kann man das dann nicht umwandeln??
Karolus
********
Beiträge: 7534
Registriert: Mo, 02.01.2006 19:48

Re: OOo Basic: Problem beim einlesen von Zellen in OOo Calc

Beitrag von Karolus »

Hallo
Du bist etwas knausrig mit deinen Informationen !
Funktionierts mit:

Code: Alles auswählen

...
TEX = CStr(Cells(R, 3).formulalocal)
....
Gruß Karo
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
thiro
Beiträge: 5
Registriert: Di, 08.07.2008 16:57

Re: OOo Basic: Problem beim einlesen von Zellen in OOo Calc

Beitrag von thiro »

Karolus hat geschrieben:Hallo
Du bist etwas knausrig mit deinen Informationen !
Funktionierts mit:

Code: Alles auswählen

...
TEX = CStr(Cells(R, 3).formulalocal)
....
Gruß Karo
Nep da kommt als Fehlermeldung bei der Zeile:
BASIC-Laufzeitfehler.
Eigenschaft oder Methode nicht gefunden.
Karolus
********
Beiträge: 7534
Registriert: Mo, 02.01.2006 19:48

Re: OOo Basic: Problem beim einlesen von Zellen in OOo Calc

Beitrag von Karolus »

Hallo
Na dann liefer mal den kompletten Code damit wir nachschauen können wo es klemmt.

Gruß Karo
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
thiro
Beiträge: 5
Registriert: Di, 08.07.2008 16:57

Re: OOo Basic: Problem beim einlesen von Zellen in OOo Calc

Beitrag von thiro »

Karolus hat geschrieben:Hallo
Na dann liefer mal den kompletten Code damit wir nachschauen können wo es klemmt.

Gruß Karo
Bitte, es wird zwar leicht unüberschaubar weil ihr die Tabelle mit den Einträgen nicht habt aber, vlt findet ja einer den Fehler...

Code: Alles auswählen

Rem Attribute VBA_ModuleType=VBADocumentModule
Option VBASupport 1
Private Sub GO_Click()
 Dim R As Integer
 Dim FIR As Integer
 Dim ANF As Integer
 Dim POS As Integer
 Dim NEG As Integer
 Dim ANT As Integer
 Dim KEI As Integer
 Dim DAT As String
 Dim TEX As String
 Dim TEM As Integer
 
 R = 6
 FIR = 0
 ANF = 0
 ANT = 0
 POS = 0
 NEG = 0
 KEI = 0
 DAT = Date
 TEX = Date
 TEM = 0
 
 While Cells(R, 4).Value <> ""
    If Cells(R, 3).Value = "" Then
                                Cells(R, 6).Value = "XXXXX"
                                Cells(R, 6).Interior.ColorIndex = 2
    Else
                                If Cells(R, 5).Value = "" Then
                                                          Cells(R, 6).Value = "Waiting"
                                                          Cells(R, 6).Interior.ColorIndex = 6
                                Else
                                                           If Cells(R, 5).Value = "OK" Then
                                                                                       Cells(R, 6).Value = "OK"
                                                                                       Cells(R, 6).Interior.ColorIndex = 4
                                                                                       POS = POS + 1
                                                                                       ANT = ANT + 1
                                                                                       If Cells(R, 5).Value <> "" And Cells(R, 7).Value = "" Then
                                                                                                                                             Cells(R, 7).Value = Date
                                                                                       End If
                                                           Else
                                                                                       Cells(R, 6).Value = "KO"
                                                                                       Cells(R, 6).Interior.ColorIndex = 3
                                                                                       NEG = NEG + 1
                                                                                       ANT = ANT + 1
                                                                                       If Cells(R, 5).Value <> "" And Cells(R, 7).Value = "" Then
                                                                                                                                             Cells(R, 7).Value = Date
                                                                                       End If
                                                           End If
                                End If
    End If
    If Cells(R, 3).Value <> "" Then
                               ANF = ANF + 1
    End If
    
    FIR = FIR + 1
  
  DAT = CStr(Date)
  TEX = CStr(Cells(R, 3).Value)
  
  MsgBox("R: " & R & Chr(13) & "DAT: " & DAT & Chr(13) & "TEX: " & TEX & Chr(13) & "Firmen: " & FIR & Chr(13) & "Anfragen: " & ANF & Chr(13) & "Antworten: " & ANT & Chr(13) & "Ignored: " & KEI & Chr(13) & "Positiv: " & POS & Chr(13) & "Negativ: " & NEG)
  
  TEM = CInt(Mid(DAT, 4, 2)) - CInt(Mid(TEX, 4, 2))
  If ( (Cells(R, 5).Value = "") AND (TEM >= 3) AND (Cells(R, 7).Value <> "XXXXX") ) Then
  	KEI = KEI + 1
  	Cells(R, 6).Value = "IGNORED"
  	Cells(R, 6).Interior.ColorIndex = 9
  	Cells(R, 7).Value = "XXXXX"
  End If
  R = R + 1
  Wend  
  
  Cells(7, 10).Value = FIR
  Cells(9, 10).Value = ANF
  Cells(12, 10).Value = POS
  Cells(13, 10).Value = NEG
  Cells(14, 10).Value = (ANF - KEI - POS - NEG)
  Cells(15, 10).Value = KEI
  Cells(11, 10).Value = ANT
End Sub
Karolus
********
Beiträge: 7534
Registriert: Mo, 02.01.2006 19:48

Re: OOo Basic: Problem beim einlesen von Zellen in OOo Calc

Beitrag von Karolus »

Hallo
Ich kann leider deinen Code nicht testen, da ich hier keine OOo-version mit VBA-Support habe.
Wenn es mit '...formulalocal' nicht funktioniert probiers mit '...string'

Falls das auch nicht klappt, warte auf eine Antwort von jemanden der sich mit VBA besser auskennt und/oder wende dich an ein EXcel/VBA -Forum.
Gruß Karo
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
thiro
Beiträge: 5
Registriert: Di, 08.07.2008 16:57

Re: OOo Basic: Problem beim einlesen von Zellen in OOo Calc

Beitrag von thiro »

String klappt auch nicht... Ich warte ;)

Ich hab das Problem nähmlich schon in ein VBA Forum gepostet und die habe bisher auch noch keine Lösung...


------ EDIT: ------
Hat nun geklappt...

Hier der Code zur Lösung:

Code: Alles auswählen

AltesDatum = "04.12.2007" 'Beispieldatum
 
Dim Unterschied As Long
Unterschied = (Year(Date) - Year(CDate(AltesDatum))) * 12 + _
  Month(Date) - Month(CDate(AltesDatum))
Antworten