HILFEEEE VBA-CODE
Moderator: Moderatoren
HILFEEEE VBA-CODE
hallo,
ich hab den Auftrag bekommen, diesen Code zu konvertieren:
Private Sub PruefeAuswahl(ind, auswahl)
ret = False
If (auswahl <> " " And auswahl <> "") Then
If ((ind <> 1 And auswahl = Boni1) _
Or (ind <> 2 And auswahl = Boni2) _
Or (ind <> 3 And auswahl = Boni3) _
Or (ind <> 4 And auswahl = Boni4) _
Or (ind <> 5 And auswahl = Boni5) _
Or (ind <> 6 And auswahl = Boni6)) Then
MsgBox ("Dieser Eintrag wurde bereits ausgewählt. Doppelte Einträge sind nicht erlaubt!")
auswahl.Activate
Else: ret = True
End If
Else: ret = True
End If
End Sub
Private Sub Boni1_Change()
Dim oSheets as Object
oSheets = ThisComponent.CurrentController.ActiveSheet
oSheets.Unprotect "liza"
ret = True
Call PruefeAuswahl(1, Me.Boni1)
If (ret = True) Then
If (Me.Boni1 <> " " And Me.Boni1 <> "") Then
Cells(8, 4).Select
Else
Cells(8, 6) = Null
Cells(8, 4) = Null
End If
Cells(8, 1) = Me.Boni1 + " "
End If
Excel.ActiveSheet.Protect "liza"
End Sub
Wer könnte mir jetzt bei der Konvertierung helfen?
Ich bin auf eure Hilfe angewiesen.
ich hab den Auftrag bekommen, diesen Code zu konvertieren:
Private Sub PruefeAuswahl(ind, auswahl)
ret = False
If (auswahl <> " " And auswahl <> "") Then
If ((ind <> 1 And auswahl = Boni1) _
Or (ind <> 2 And auswahl = Boni2) _
Or (ind <> 3 And auswahl = Boni3) _
Or (ind <> 4 And auswahl = Boni4) _
Or (ind <> 5 And auswahl = Boni5) _
Or (ind <> 6 And auswahl = Boni6)) Then
MsgBox ("Dieser Eintrag wurde bereits ausgewählt. Doppelte Einträge sind nicht erlaubt!")
auswahl.Activate
Else: ret = True
End If
Else: ret = True
End If
End Sub
Private Sub Boni1_Change()
Dim oSheets as Object
oSheets = ThisComponent.CurrentController.ActiveSheet
oSheets.Unprotect "liza"
ret = True
Call PruefeAuswahl(1, Me.Boni1)
If (ret = True) Then
If (Me.Boni1 <> " " And Me.Boni1 <> "") Then
Cells(8, 4).Select
Else
Cells(8, 6) = Null
Cells(8, 4) = Null
End If
Cells(8, 1) = Me.Boni1 + " "
End If
Excel.ActiveSheet.Protect "liza"
End Sub
Wer könnte mir jetzt bei der Konvertierung helfen?
Ich bin auf eure Hilfe angewiesen.
- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
Re: HILFEEEE VBA-CODE
Du hast das Forum schon durchsucht (wie man VBA-Code umstellt) - und alle Verweise brachten Dich nicht weiter?
Wo liegt Dein Problem beim Umsetzen? Ich sehe da erstmal keine Schwierigkeiten....
Wo liegt Dein Problem beim Umsetzen? Ich sehe da erstmal keine Schwierigkeiten....
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: HILFEEEE VBA-CODE
Ja dachte ich auch, aber wenn du das kopiert haben solltest, kommt direkt am Anfang eine Fehlermeldung, die ich nicht lösen kann.Du hast das Forum schon durchsucht (wie man VBA-Code umstellt) - und alle Verweise brachten Dich nicht weiter?
Wo liegt Dein Problem beim Umsetzen? Ich sehe da erstmal keine Schwierigkeiten....
PS: da ich selbst was anderes weiterprogrammiere habe ich da paar Probleme:
1. Ich sage, dass es z.B von Zelle a1 die Zahl entnehmen soll und in Zelle a2 anzeigen soll, aaaber bei zelle a2 steht die zahl dann nicht mehr als 2 sondern als ' 2 also es wird nicht als Zahl anerkannt, wenn ihr mir bei diesem Problem weiterhelfen könntet wäre ich sehr dankbar.
2. Cells(27, 4).Font.ColorIndex = 1
hier weiß cih wieder mal nicht wie ich es umschreiben muss damit das starbasic anerkennt.
Danke im Voraus bis dann.
- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
Re: HILFEEEE VBA-CODE
...welche Fehlermeldung ... an welcher Stelle?
"auswahl" (den gewählten Zellwert) hast Du natürlich umgesetzt, oder?
im rufenden Code müsste das so aussehen:
Dann geht "natürlich" auch nicht auswahl.activate (aber ein oAuswahl.Select )
Zeige uns, was Du bis jetzt konvertiert hast, dann können wir auch helfen.
"auswahl" (den gewählten Zellwert) hast Du natürlich umgesetzt, oder?
im rufenden Code müsste das so aussehen:
Code: Alles auswählen
oAuswahl = ThisComponent.getCurrentSelection()
PruefeAuswahl( ind, oAuswahl.getString() )
Zeige uns, was Du bis jetzt konvertiert hast, dann können wir auch helfen.
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: HILFEEEE VBA-CODE
Sooo ich bin damit ganz weit gekommen, aber habe drei Sachen nicht geschaft die sich sehr ähnel. Und komma du hast mir weitergehofen thx. Was nicht funktinoiert hab ich mit einem Kommentar bekennzeichnet.
Code: Alles auswählen
Private Sub Boni1_Change()
Dim oSheets as Object, oDpage as Object, oForm as Object, oView, Boni1 as Object, Boni12 as string
oSheets = ThisComponent.CurrentController.ActiveSheet
oSheets.Unprotect "liza"
oSheet = ThisComponent.Sheets.getByName("Kalkulationsblatt")
oDpage = oSheet.DrawPage
oForm = oDpage.Forms.getByName("K")
oView = ThisComponent.CurrentController
Boni1 = oForm.getByName("Boni1")
Boni12 = oView.GetControl(Boni1).getselectedItem
ret = True
Call PruefeAuswahl(1, Boni12)
If (ret = True) Then
If (Boni12 <> " " And Boni12 <> "") Then
oSheet.getCellbyPosition(3, 7).select 'Funktioniert nicht
Else
oSheet.getCellbyPosition(5, 7).setformula(Null) 'Funktioniert auch nicht
Cells(8, 4) = Null
End If
oSheet.getCell(0, 7).setFormula(Me.Boni1 + " ") 'Funktioniert auch nicht
End If
'OSheets.Protect "liza"
End Sub
Private Sub PruefeAuswahl(ind, auswahl)
Dim oSheets as Object, oDpage as Object, oForm as Object, oView, Boni1 as Object, Boni2 as Object, Boni3 as Object, Boni4 as Object, Boni5 as Object
Dim Boni12 as string, Boni22 as string, Boni32 as string, Boni42 as string, Boni52 as string
oSheet = ThisComponent.Sheets.getByName("Kalkulationsblatt")
oSheet2 = ThisComponent.Sheets.getByName("Formeln")
oDpage = oSheet.DrawPage
oForm = oDpage.Forms.getByName("K")
oView = ThisComponent.CurrentController
Boni1 = oForm.getByName("Boni1")
Boni2 = oForm.getByName("Boni2")
Boni3 = oForm.getByName("Boni3")
Boni4 = oForm.getByName("Boni4")
Boni5 = oForm.getByName("Boni5")
Boni1 = oForm.getByName("Boni1")
Boni12 = oView.GetControl(Boni1).getselectedItem
Boni22 = oView.GetControl(Boni2).getselectedItem
Boni32 = oView.GetControl(Boni3).getselectedItem
Boni42 = oView.GetControl(Boni4).getselectedItem
Boni52 = oView.GetControl(Boni5).getselectedItem
ret = False
If (Auswahl <> " " And Auswahl <> "") Then
If ((ind <> 1 And auswahl = Boni12) _
Or(ind <> 2 And auswahl = Boni22) _
Or (ind <> 3 And Auswahl = Boni32) _
Or (ind <> 4 And Auswahl = Boni42) _
Or (ind <> 5 And Auswahl = Boni52)) Then
MsgBox ("Dieser Eintrag wurde bereits ausgewählt. Doppelte Einträge sind nicht erlaubt!")
'auswahl.Activate
Else: ret = True
End If
Else: ret = True
End If
End Sub
- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
Re: HILFEEEE VBA-CODE
Bonil ist Deine Liste? Und Du möchstest prüfen, ob ein Eintrag gewählt wurde (Du hast doch keine Listeneinträge, die "ein Blank" haben, oder?)?
Dann nicht so, sondern:
Dann nicht so,
Code: Alles auswählen
If (Boni12 <> " " And Boni12 <> "") Then
Code: Alles auswählen
If Bonil.getSelectedItems <> -1 then ' es wurde mind. ein Einrtag gewählt
Was ist "Null"? Du möchtest die Berechnungsformel der Zelle löschen? Was passiert beioSheet.getCellbyPosition(5, 7).setformula(Null) 'Funktioniert auch nicht
Code: Alles auswählen
oSheet.getCellbyPosition(5, 7).setformula( "" ) ' untested !
Das kann nicht funktionieren, da es Me bei OOo nicht gibt. Und was sollen die Leerstellen? Meinst Du hier vielleicht ein .setString()oSheet.getCell(0, 7).setFormula(Me.Boni1 + " ") 'Funktioniert auch nicht
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: HILFEEEE VBA-CODE
Ja, danke jetzt hab ich alles auser mit select. OOo Basic nimmt ja auch select irgendwie nicht an. Also ich brauche einmal noch für select und activate eine Bezeichnung.
Die beiden nimmt das Programm nicht an.
Hier ist der Fehler, dass in Zelle 3,27 nicht eine Zahl sondern eine Zahl mit ' 2 so ausgegeben wird. Das ist bei allen Zellen mit value so. Ich verstehe nicht wieso es nicht als Zahl ausgibt.
Ich würde mich über schnelle Antworten freuen. Und sehr sehr vielen Dank
Code: Alles auswählen
oSheet.getCellbyPosition(3, 9).Select
Code: Alles auswählen
oSheet.getCellbyPosition(3, 9).activate
Code: Alles auswählen
osheet.getcellbyPosition(3, 27).setFormula(erg * osheet.getcellbyPosition(5, 27).value)
Ich würde mich über schnelle Antworten freuen. Und sehr sehr vielen Dank
- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
Re: HILFEEEE VBA-CODE
SELECT ist eine Methode, die über den VIEW der Anwendung geht:
aus Andrews Makro-Dokument
Zellen mit Hochkomma (erzwungene Text-Formatierung):
mit .VALUE bekommst Du den Wert (nummerisch) einer Zelle; steht darin eine Zahl hinter einem Hochkomma, so wird Null zurück gegeben
a) umwandeln der Zellen in einen nummerischen Wert (mit reg. Ausdrücken; über Makro, bspw. Txt2Num
b)
aus Andrews Makro-Dokument
Code: Alles auswählen
Dim oCell
Dim oSheet
REM Get the first sheet.
oSheet = ThisComponent.getSheets().getByIndex(0)
REM Get cell A2
oCell = oSheet.GetCellbyPosition( 0, 1 )
REM Move the selection to cell A2
ThisComponent.CurrentController.Select(oCell)
Zellen mit Hochkomma (erzwungene Text-Formatierung):
mit .VALUE bekommst Du den Wert (nummerisch) einer Zelle; steht darin eine Zahl hinter einem Hochkomma, so wird Null zurück gegeben
a) umwandeln der Zellen in einen nummerischen Wert (mit reg. Ausdrücken; über Makro, bspw. Txt2Num
b)
Code: Alles auswählen
osheet.getcellbyPosition(3, 27).setFormula(erg * CInt( osheet.getcellbyPosition(5, 27).value) )
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: HILFEEEE VBA-CODE
Ja noch mal vielen Dank komma,
ich hab das jetzt mit select dank deiner Hilfe hinbekomme, nur wenn ich die listbox betätige dann Selektiert er zwar die Zelle aber die Listbox bleibt auch Selektiert und ich kann dann nichts in die Zelle reinschreiben, da 2 Selektionen vorhanden sind.
Meine Frage ist jetzt, wie schaffe ich die Selektion oder Aktivierung kein Plan wie das heiß im Listbox abzuwählen. Warte auf Codes danke.
ich hab das jetzt mit select dank deiner Hilfe hinbekomme, nur wenn ich die listbox betätige dann Selektiert er zwar die Zelle aber die Listbox bleibt auch Selektiert und ich kann dann nichts in die Zelle reinschreiben, da 2 Selektionen vorhanden sind.
Meine Frage ist jetzt, wie schaffe ich die Selektion oder Aktivierung kein Plan wie das heiß im Listbox abzuwählen. Warte auf Codes danke.
Re: HILFEEEE VBA-CODE
Hallo,
warte immer noch auf Antworten. Bitte um Hilfe.
warte immer noch auf Antworten. Bitte um Hilfe.