Makro (CALC) ein bestimmtes Wort finden und komplette Zeile kopieren
Moderator: Moderatoren
Makro (CALC) ein bestimmtes Wort finden und komplette Zeile kopieren
Hallo,
suche ein Code für: mit Makro ein bestimmtes Wort (BSP: "Brief") findet und komplette Zeile kopiert und eine neue Tabelle ("Brief") erstellt und dort einfügt.
Danke in voraus für eure Hilfe.
suche ein Code für: mit Makro ein bestimmtes Wort (BSP: "Brief") findet und komplette Zeile kopiert und eine neue Tabelle ("Brief") erstellt und dort einfügt.
Danke in voraus für eure Hilfe.
Zuletzt geändert von Namrenner am Mi, 08.07.2015 13:38, insgesamt 1-mal geändert.
- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
Re: mit Makro ein bestimmtes Wort finden und komplette Zeile kopieren
Willkommen im Forum.
Du findest hier eine Gemeinschaft, die Dir bei Problemen hilft - aber selten als kostenloser Coding-Service arbeitet.
Wenn Du Dich etwas im Unterforum einliesst, dann findest Du schnell Hinweise, wie Du Programmieren erlernen kannst. Viel Spass dabei.
Bei dann auftauchenden konkreten Fragen helfen wir Dir gerne weiter... wenn Du die nötigen Informationen lieferst (handelt es sich bei Deinem Beispiel um ein CALC-Dokument?)
Du findest hier eine Gemeinschaft, die Dir bei Problemen hilft - aber selten als kostenloser Coding-Service arbeitet.
Wenn Du Dich etwas im Unterforum einliesst, dann findest Du schnell Hinweise, wie Du Programmieren erlernen kannst. Viel Spass dabei.
Bei dann auftauchenden konkreten Fragen helfen wir Dir gerne weiter... wenn Du die nötigen Informationen lieferst (handelt es sich bei Deinem Beispiel um ein CALC-Dokument?)
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: Makro (CALC) ein bestimmtes Wort finden und komplette Zeile kopieren
Hallo,
habe schon öfters probiert, da leider Calc nicht den Makro aufnehmt, finde ich leider nicht richtigen Code dafür.
Habe Code hinbekommen, wo ein bestimmtes Wort findet und die Zeile löscht,
habe schon öfters probiert, da leider Calc nicht den Makro aufnehmt, finde ich leider nicht richtigen Code dafür.
Habe Code hinbekommen, wo ein bestimmtes Wort findet und die Zeile löscht,
Code: Alles auswählen
dim args1(17) as new com.sun.star.beans.PropertyValue
args1(0).Name = "SearchItem.StyleFamily"
args1(0).Value = 2
args1(1).Name = "SearchItem.CellType"
args1(1).Value = 0
args1(2).Name = "SearchItem.RowDirection"
args1(2).Value = true
args1(3).Name = "SearchItem.AllTables"
args1(3).Value = false
args1(4).Name = "SearchItem.Backward"
args1(4).Value = true
args1(5).Name = "SearchItem.Pattern"
args1(5).Value = false
args1(6).Name = "SearchItem.Content"
args1(6).Value = false
args1(7).Name = "SearchItem.AsianOptions"
args1(7).Value = false
args1(8).Name = "SearchItem.AlgorithmType"
args1(8).Value = 0
args1(9).Name = "SearchItem.SearchFlags"
args1(9).Value = 65536
args1(10).Name = "SearchItem.SearchString"
args1(10).Value = "Test"
args1(11).Name = "SearchItem.ReplaceString"
args1(11).Value = ""
args1(12).Name = "SearchItem.Locale"
args1(12).Value = 255
args1(13).Name = "SearchItem.ChangedChars"
args1(13).Value = 2
args1(14).Name = "SearchItem.DeletedChars"
args1(14).Value = 2
args1(15).Name = "SearchItem.InsertedChars"
args1(15).Value = 2
args1(16).Name = "SearchItem.TransliterateFlags"
args1(16).Value = 1280
args1(17).Name = "SearchItem.Command"
args1(17).Value = 1
dispatcher.executeDispatch(document, ".uno:ExecuteSearch", "", 0, args1())
rem ----------------------------------------------------------------------
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "Flags"
args2(0).Value = "R"
dispatcher.executeDispatch(document, ".uno:DeleteCell", "", 0, args2())
Re: Makro (CALC) ein bestimmtes Wort finden und komplette Zeile kopieren
Hallo Namrenner,
habe dir mal ein Makro und eine BeiSpieldatei erstellt die deinen Wunsch und etwas mehr erfüllt,
guckst du hier:
und noch etws aufgezeichneten Dispatcher Code zu einer "function" erweitert
vieleicht kannst du es ja so direkt gebrauchen?
VielSpaß
habe dir mal ein Makro und eine BeiSpieldatei erstellt die deinen Wunsch und etwas mehr erfüllt,
guckst du hier:
Code: Alles auswählen
sub FindeStringKopiereFundzeile
oCalc = ThisComponent
oSheet = oCalc.CurrentSelection.Spreadsheet
myString = InputBox( _
"bei Fund, eine weitere so benannte Tabelle erstellen " & chr(10) & _
"und in Diese, dann die gesamte Fundzeile kopieren" & chr(10) & _
"es können auch mehrere Suchbegriffe ';' getrennt eingegeben werden" _
,"den eingegebenen Begiff suchen ")
if Len(myString) = 0 then
MsgBox("nichts eingegeben Aktion abgebrochen")
exit sub
end if
mAllText = split(myString,";")
for i=0 to uBound(mAllText)
result = SucheNach( mAllText(i))
if result = "-" then
mAllText(i) = mAllText(i) & " - nicht gefunden, keine weitere Aktion"
goto jumpover
else
ix=1
newTable = mAllText(i)
do while oCalc.Sheets.hasByName(newTable)
ix = ix+1
newTable = mAllText(i) & "(" & ix &")"
if oCalc.Sheets.count > 255 then
msgbox "zu viele Tabellenblätter"
exit sub
endif
loop
Sheet=oCalc.createInstance("com.sun.star.sheet.Spreadsheet")
oCalc.Sheets.insertByName(newTable, sheet)
endif
oSheet2 = oCalc.Sheets.getByName(newTable)
oSourceRange = oSheet.getCellRangeByPosition(0,result,1023,result)
oSourceRangeAddresse = oSourceRange.getRangeAddress
oTarget = oSheet2.getCellByPosition(0,1)
oTargetCellAdresse = oTarget.getCellAddress
oSheet2.copyRange(oTargetCellAdresse,oSourceRangeAddresse)
mAllText(i) = "Tabelle " & newTable & " erstellt und Zeile " & result+1 & " kopiert "
jumpover:
next
msgbox join(mAllText(), chr(10))
end sub
Code: Alles auswählen
function SucheNach( sText$ )
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "Sel"
args1(0).Value = false
dispatcher.executeDispatch(document, ".uno:GoToStart", "", 0, args1())
rem ----------------------------------------------------------------------
dim args2(17) as new com.sun.star.beans.PropertyValue
args2(0).Name = "SearchItem.StyleFamily"
args2(0).Value = 2
args2(1).Name = "SearchItem.CellType"
args2(1).Value = 0
args2(2).Name = "SearchItem.RowDirection"
args2(2).Value = false
args2(3).Name = "SearchItem.AllTables"
args2(3).Value = false
args2(4).Name = "SearchItem.Backward"
args2(4).Value = false
args2(5).Name = "SearchItem.Pattern"
args2(5).Value = false
args2(6).Name = "SearchItem.Content"
args2(6).Value = false
args2(7).Name = "SearchItem.AsianOptions"
args2(7).Value = false
args2(8).Name = "SearchItem.AlgorithmType"
args2(8).Value = 1
args2(9).Name = "SearchItem.SearchFlags"
args2(9).Value = 65536
args2(10).Name = "SearchItem.SearchString"
args2(10).Value = "^" & sText & "$"
args2(11).Name = "SearchItem.ReplaceString"
args2(11).Value = ""
args2(12).Name = "SearchItem.Locale"
args2(12).Value = 255
args2(13).Name = "SearchItem.ChangedChars"
args2(13).Value = 2
args2(14).Name = "SearchItem.DeletedChars"
args2(14).Value = 2
args2(15).Name = "SearchItem.InsertedChars"
args2(15).Value = 2
args2(16).Name = "SearchItem.TransliterateFlags"
args2(16).Value = 1024
args2(17).Name = "SearchItem.Command"
args2(17).Value = 0
dispatcher.executeDispatch(document, ".uno:ExecuteSearch", "", 0, args2())
if ThisComponent.CurrentSelection.String = sText then
SucheNach = ThisComponent.CurrentSelection.CellAddress.Row
else
SucheNach = "-"
endif
end function
VielSpaß
LG
clag
nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
clag
nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Re: Makro (CALC) ein bestimmtes Wort finden und komplette Zeile kopieren
Hallo Clag,
danke für die tolle Arbeit.
Können Sie den Befehl ändern?
Wenn was gesucht wird, wenn mehrmals in der Tabelle ist, kopiert?
BSP: habe in der Zeile 2, 5 und 7 "Deutschland" stehen, das die 3 Zeilen in die neue Tabelle kopiert.
Wenn möglich ohne MsgBox, danke.
danke für die tolle Arbeit.
Können Sie den Befehl ändern?
Wenn was gesucht wird, wenn mehrmals in der Tabelle ist, kopiert?
BSP: habe in der Zeile 2, 5 und 7 "Deutschland" stehen, das die 3 Zeilen in die neue Tabelle kopiert.
Wenn möglich ohne MsgBox, danke.
Re: Makro (CALC) ein bestimmtes Wort finden und komplette Zeile kopieren
Hallo Namrenner,
habe das Makro noch etwas "gepimpt"
es werden jetzt alle Zeilen kopiert, mit oder ohne Kopfzeile, alle oder nur in der Auswahl.
Viel Spaß.
habe das Makro noch etwas "gepimpt"
es werden jetzt alle Zeilen kopiert, mit oder ohne Kopfzeile, alle oder nur in der Auswahl.
Viel Spaß.
LG
clag
nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
clag
nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Re: Makro (CALC) ein bestimmtes Wort finden und komplette Zeile kopieren
Hallo,
danke klappt super.
Können Sie mir auch nur den Code geben, ohne msgbox, meine damit das ohne eine Suchbox bekomme.
Bekommen jeden Tag eine csv Datei mit Daten mit Adressen, Versandarten (Briefpost, Paket...)
Nun will den Code von Ihnen nehmen, das die Adressen sortiert wird.
Tabelle Briefpost, Tabelle Paket.
Mit Spaltenkopf.
Danke
danke klappt super.
Können Sie mir auch nur den Code geben, ohne msgbox, meine damit das ohne eine Suchbox bekomme.
Bekommen jeden Tag eine csv Datei mit Daten mit Adressen, Versandarten (Briefpost, Paket...)
Nun will den Code von Ihnen nehmen, das die Adressen sortiert wird.
Tabelle Briefpost, Tabelle Paket.
Mit Spaltenkopf.
Danke
Re: Makro (CALC) ein bestimmtes Wort finden und komplette Zeile kopieren
Hallo Namrenner,
Du solltest einmal etwas präziser mitteilen was du genau möchtest.
und woher soll das Makro dann wissen nach welchem "Begriff" gesucht werden soll?Namrenner hat geschrieben:meine damit das ohne eine Suchbox bekomme
Du solltest einmal etwas präziser mitteilen was du genau möchtest.
LG
clag
nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
clag
nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Re: Makro (CALC) ein bestimmtes Wort finden und komplette Zeile kopieren
Hallo,
BSP: Paket und die Tabelle heist dann auch Paket mit Spaltenkopf.
ich ändere den Code mit andere Suchbegriff um, danke.
mfg
BSP: Paket und die Tabelle heist dann auch Paket mit Spaltenkopf.
ich ändere den Code mit andere Suchbegriff um, danke.
mfg
Re: Makro (CALC) ein bestimmtes Wort finden und komplette Zeile kopieren
Hallo,
schade das keine Antwort mehr bekommen, der Code ist seht gut.
Da ich immer den selben Suchbegriff habe, ist es mit MsgBox nicht so einfach.
Kann jemand den Code umschreiben ohne MsgBox, das gesuchte Wort ist immer "Deutschland".
Habe Adressen von Ausland und Deutschland, suche nur ein Code mit gewünschte Suchfeld "Deutschland".
Ich Danke im Voraus, das jemand mir den Code gibt, Danke.
schade das keine Antwort mehr bekommen, der Code ist seht gut.
Da ich immer den selben Suchbegriff habe, ist es mit MsgBox nicht so einfach.
Kann jemand den Code umschreiben ohne MsgBox, das gesuchte Wort ist immer "Deutschland".
Habe Adressen von Ausland und Deutschland, suche nur ein Code mit gewünschte Suchfeld "Deutschland".
Ich Danke im Voraus, das jemand mir den Code gibt, Danke.