HILFEEEE VBA-CODE

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: HILFEEEE VBA-CODE

Re: HILFEEEE VBA-CODE

von nusta88 » So, 01.07.2007 10:59

Hallo,

warte immer noch auf Antworten. Bitte um Hilfe.

Re: HILFEEEE VBA-CODE

von nusta88 » Fr, 29.06.2007 15:49

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.

Re: HILFEEEE VBA-CODE

von komma4 » Fr, 29.06.2007 10:00

SELECT ist eine Methode, die über den VIEW der Anwendung geht:
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)  )

Re: HILFEEEE VBA-CODE

von nusta88 » Fr, 29.06.2007 09:28

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.

Code: Alles auswählen

oSheet.getCellbyPosition(3, 9).Select

Code: Alles auswählen

oSheet.getCellbyPosition(3, 9).activate
Die beiden nimmt das Programm nicht an.

Code: Alles auswählen

osheet.getcellbyPosition(3, 27).setFormula(erg * osheet.getcellbyPosition(5, 27).value)
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

Re: HILFEEEE VBA-CODE

von komma4 » Do, 28.06.2007 17:36

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,

Code: Alles auswählen

  If (Boni12 <> " " And Boni12 <> "") Then
sondern:

Code: Alles auswählen

If Bonil.getSelectedItems <> -1 then  ' es wurde mind. ein Einrtag gewählt 
oSheet.getCellbyPosition(5, 7).setformula(Null) 'Funktioniert auch nicht
Was ist "Null"? Du möchtest die Berechnungsformel der Zelle löschen? Was passiert bei

Code: Alles auswählen

    oSheet.getCellbyPosition(5, 7).setformula( "" ) ' untested ! 
oSheet.getCell(0, 7).setFormula(Me.Boni1 + " ") 'Funktioniert auch nicht
Das kann nicht funktionieren, da es Me bei OOo nicht gibt. Und was sollen die Leerstellen? Meinst Du hier vielleicht ein .setString()

Re: HILFEEEE VBA-CODE

von nusta88 » Do, 28.06.2007 16:36

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

Re: HILFEEEE VBA-CODE

von komma4 » Do, 28.06.2007 14:33

...welche Fehlermeldung ... an welcher Stelle?


"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() )
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.

Re: HILFEEEE VBA-CODE

von nusta88 » Do, 28.06.2007 13:27

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....
Ja dachte ich auch, aber wenn du das kopiert haben solltest, kommt direkt am Anfang eine Fehlermeldung, die ich nicht lösen kann.

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.

Re: HILFEEEE VBA-CODE

von komma4 » Do, 28.06.2007 13:21

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....

HILFEEEE VBA-CODE

von nusta88 » Do, 28.06.2007 10:27

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.

Nach oben