Seite 1 von 1

Makro aus Excel für Libre

Verfasst: Mo 7. Mär 2016, 19:10
von woifi
Hallo,

ich werde mich mehr dem Libre (freie Software für freie User) widmen.

Ein Makro aus Excel, welches ich mal irgendwie zusammengebastelt hatte, möchte ich nun in Libre einbinden.

Kann mir bitte bitte wer beim Umschreiben helfen? Ich bin beim Programmieren so schlecht, dass ich mich jetzt noch wundere, dass ich Folgendes überhaupt mal geschafft hatte :)

Makro:
* Öffnet MsgBox
* Eingabe des EANCodes durch Handscanner (gibt Code ein und setzt am Ende automatisch ein Enter)
* Suche in einem definierten Zellenbereich (SPALTE AC wäre toll)
* Wenn gefunden dann Sprung zu einer benachbarten Zelle (SPALTE AE in gleicher Zeile wie gefunden)
* wenn nicht gefunden dann Msg "nicht gefunden".

Code: Alles auswählen

Option Explicit
Dim EanEingabe
Dim RangeObj

Sub EanSuche()
   EanEingabe = InputBox("EAN:")
    If StrPtr(EanEingabe) = 0 Then Exit Sub
    Set RangeObj = Cells.Find(EanEingabe, LookAt:=xlWhole)
    If RangeObj Is Nothing Then MsgBox "Not Found" Else Cells.Find(EanEingabe, LookAt:=xlWhole).Activate
    ActiveCell.Offset(0, 2).Range("A1").Select
End Sub
Bitte um Hilfe

Re: Makro aus Excel für Libre

Verfasst: Mo 7. Mär 2016, 20:10
von F3K Total
Hi,
du hast Glück gehabt, hatte einen guten Tag, das nächste Mal wird's teuer ;)

Code: Alles auswählen

Sub EanSuche()
    EanEingabe = InputBox("EAN:","Search EAN")
    If EanEingabe = "" Then 
        msgbox "Input required"
        Exit Sub
    endif
    oRange = ThisComponent.NamedRanges.getbyname("xlwhole")
    oSearchDescriptor = oRange.ReferredCells.createSearchDescriptor
    oSearchDescriptor.SearchString = EanEingabe
    oResult = oRange.ReferredCells.findFirst(oSearchDescriptor)
    if isNull(oResult) then
        Msgbox ("EAN-Number " & EanEingabe & " was not found",16,"Error")
    else
        oController = ThisComponent.CurrentController
        nSheet =  oResult.CellAddress.sheet
        nRow = oResult.CellAddress.row
        ocell = thiscomponent.sheets(nSheet).getCellbyposition(30, nRow)'Spalte 30 entspricht AE
        oController.select(oCell)    
    endif
End Sub
Beispiel anbei

Gruß R

Re: Makro aus Excel für Libre

Verfasst: Di 8. Mär 2016, 08:50
von woifi
Lieber/e F3K Total,
ich danke dir viel viel viel mal für deine Arbeit und weiß das sehr zu schätzen!


Danke vielmals!