Vielfach- Suchen u Vielfach Ersetzen

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

echo
*******
Beiträge: 1006
Registriert: Fr, 14.11.2008 15:27
Wohnort: BRA - Nds

Re: Vielfach- Suchen u Vielfach Ersetzen

Beitrag von echo »

hallo Rosemarie
wie machst du das denn bisher?
Markierst du die Zelle mit dem Text "Lausanne (Ouchy)" und schreibst die richtige Schreibweise da rein?
kennst du die Funktion suchen/ersetzen im Menü Bearbeiten?

Gruß Holger
echo
*******
Beiträge: 1006
Registriert: Fr, 14.11.2008 15:27
Wohnort: BRA - Nds

Re: Vielfach- Suchen u Vielfach Ersetzen

Beitrag von echo »

Hallo
es gibt die Möglichkeit die Suche einer Formel zu überlassen. Siehe Anhang
Komplett automatisch funktioniert das nur per Makro. Da müsste jemand anders ran.

Gruß Holger
Unbenannt 1.ods
(13.73 KiB) 60-mal heruntergeladen
F3K Total
********
Beiträge: 3704
Registriert: Mo, 28.02.2011 17:49

Re: Vielfach- Suchen u Vielfach Ersetzen

Beitrag von F3K Total »

Moin,
ich habe dir ein Makro geschrieben, Beispieldatei anbei.

Code: Alles auswählen

Sub Multi_Find_and_Replace_Dataarray
    oSearchstringSheet = ThisComponent.sheets.GetByName("Suchen_Ersetzen")
    oCursor = oSearchstringSheet.CreateCursor
    oCursor.GotoEndofUsedArea(false)
    nEndrow = oCursor.Rangeaddress.EndRow
    oSearchstringRange = oSearchstringSheet.getCellRangeByPosition(0,1,1,nEndrow)
    sSearcharray = oSearchstringRange.DataArray
    oSearchSheet = ThisComponent.sheets.GetByName("DATEN")
    oCursor = oSearchSheet.CreateCursor
    oCursor.GotoEndofUsedArea(false)
    nEndColumn = oCursor.Rangeaddress.EndColumn
    nEndRow = oCursor.Rangeaddress.EndRow
    oSearchRange = oSearchSheet.getCellRangeByPosition(0,0,nEndColumn,nEndRow)
    aSearchDataarray = oSearchRange.Dataarray
    nCounter = 0
    For i = 0 to uBound(sSearcharray)
        aRow = sSearcharray(i)
        sSearchString = aRow(0)
        sReplaceString = aRow(1)
        for j = 0 to uBound(aSearchDataarray)
            aSearchRow = aSearchDataarray(j)
            for k = 0 to uBound(aSearchRow)
                if instr(aSearchRow(k),sSearchString) > 0 then
                    sText = replace(aSearchRow(k),sSearchString,sReplaceString)'hier wird ersetzt
                    aSearchRow(k) = sText
                    nCounter = nCounter + 1
                endif
            next k
            aSearchDataarray(j) = aSearchRow
         next j
    next i
    oSearchRange.SetDataarray(aSearchDataarray)
    msgbox ((uBound(sSearcharray)+1) & " Suchbegriffe wurden an insgesamt " & nCounter & " Stellen ersetzt",64,"Fertig")
end sub
  • Auf Tabellenblatt "DATEN" stehen die zu durchsuchenden Daten
  • Auf Tabellenblatt "Suchen_Ersetzen" trägt man in die Spalten A und B jeweils den Suchbegriff und die Ersetzung ein.
  • Dann drückt man die Schaltfläche "Suchen und Ersetzen", fertig
Damit das Makro laufen darf, stellst du unter Extras/Einstellungen.../Openoffice/Sicherheit/Makrosicherheit... mindestens die Stufe "Mittel" ein, dann wirst du beim Öffnen von Dokumenten gefragt, ob du Makros ausführen möchtest.

Gruß R
Dateianhänge
Multi_Find_and_Replace_openoffice_info_75070.ods
(54.65 KiB) 60-mal heruntergeladen
Antworten