Makro

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

Rakorium

Makro

Beitrag von Rakorium » Di, 06.12.2011 10:19

Hallo. Da meine Daten in Excel nicht mehr verarbeitbar sind (zu viele Daten und Formeln) wollte ich die Datei mit Open Office bearbeiten. Soweit funktioniert alles außer ein Makro was dringend benötigt wird.

Entweder gibt es eine Möglichkeit die Funktion bei OO ohne Makro zu lösen oder es bekommt jemand hin das Makro umzuschreiben auf OO

Es geht darum jeder kennt ja die funktion SVerweis jedoch soll die funktion so erweitert werden, dass weitergesucht werden soll. Mal ein Beispiel. Es geht hier um Artikelnummern und Bilder für die Artikelgalerie.

Ein Artikel hat eine Artikelnummer 12345
der Artikel hat mehrere Farben also mehrere Farbnummern sagen wir mal 3

12345 - 001
12345 - 002
12345 - 003

jetzt soll der Sverweis zu 12345 die Farben dazu heraussuchen. Beim normalen Sverweis ist das Ergebnis 12345-001
wie im Makro für Excel (was auch im Excel funktioniert) die weiteren Farben angehangen werden sollen.

sprich 12345-001, 12345-002, 12345-003
die Formel im Excel lautet dann
=sverweis2(Suchkriterium;Matrix;in welcher Spalte steht der Suchbegriff;In welcher Spalte steht das Ergebnis;Unikate WAHR oder Falsch (sollten mehrmals die Farbnummer angegeben sein);"das Trennzeichen")

Hier ist das ganze mal super erklärt.

http://www.j-hennekes.de/1729416.htm

hier erstmal das Makro

Code: Alles auswählen

Option Explicit
 
 Public Function SVERWEIS2(Kriterium As String, _
     Bereich As Range, _
     SuchSpalte As Integer, _
     ErgebnissSpalte As Integer, _
     Optional Unikate As Boolean = True, _
     Optional Trenner As String = ", ") As String
 Dim arrTmp
 Dim L As Long
 Dim Mydic As Object
 arrTmp = Bereich
 Set Mydic = CreateObject("Scripting.Dictionary")
 If Unikate = True Then
     For L = 1 To UBound(arrTmp)
         If arrTmp(L, SuchSpalte) = Kriterium Then Mydic(arrTmp(L, ErgebnissSpalte)) = 0
     Next
     SVERWEIS2 = Join(Mydic.keys, Trenner)
     Else:
     For L = 1 To UBound(arrTmp)
         If arrTmp(L, SuchSpalte) = Kriterium Then Mydic(L) = arrTmp(L, ErgebnissSpalte)
     Next
     SVERWEIS2 = Join(Mydic.items, Trenner)
 End If
 End Function
End Sub

pmoegenb
********
Beiträge: 4330
Registriert: Di, 22.06.2004 12:02
Wohnort: 71134 Aidlingen
Kontaktdaten:

Re: Makro

Beitrag von pmoegenb » Di, 06.12.2011 11:51

Gruß

Peter
---------------------------------------------------------------------------
Windows 7 Prof. 64-bit SP1, LibreOffice 4.3.6.2 und AOO 4.1.1

Rakorium

Re: Makro

Beitrag von Rakorium » Di, 06.12.2011 11:55

Ja hab in mehreren Foren gepostet weils wichtig is

Klaus5

Re: Makro

Beitrag von Klaus5 » Di, 06.12.2011 12:45

weils wichtig is
Nein, wenns wichtig wäre hättest Du Dich an allgemein übliche Regeln gehalten und nicht versucht den Eindruck zu erwecken Du willst hier bloß auf Kosten Anderer eine Antwort abgreifen.

Crossposting ist eigenlich nie besonders gerne gesehen, nur das Mißverständnis dabei nur egoistisch an sich selbst zu denken vermeidet man ganz einfach dadurch das man darauf aufmerksam macht mehrfach gepostet zu haben.

Klaus

Benutzeravatar
balu
********
Beiträge: 3666
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: Makro

Beitrag von balu » Di, 06.12.2011 13:03

Hallo Rakorium,
Entweder gibt es eine Möglichkeit die Funktion bei OO ohne Makro zu lösen
Ich sags mal so; diese Möglichkeit bestünde nicht nur bei OOo, sondern auch bei Excel (so weit ich mich recht erinner).

oder es bekommt jemand hin das Makro umzuschreiben auf OO
Tja, da das Thema Crossposting für dich nicht so bedeutsam ist, und Du außerdem noch jemanden suchst der für dich die Arbeit übernimmt, bleibt mir persönlich nur eins: Befasse dich mit der Basic-Programmierung in OOo!
Hier 2 Links die zum Einstieg wohl reichen dürften.
http://www.dannenhoefer.de/faqstarbasic/index.html
http://www.pitonyak.org/oo.php
Viel Erfolg


Gruß
balu
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.

wehr rächtschraipfähler findet khan si behalden :D

Rakorium

Re: Makro

Beitrag von Rakorium » Di, 06.12.2011 13:08

Das war auch meine Absicht das mir jemand hilft da ich open office jetzt nutzen muss weil excel nich mehr hergibt und excel hab ich selber hinbekommen und oo is schon etwas anders und hab mich damit auch nie auseinander gesetzt da mir bis jetzt excel immer genügt hatte. daher meine frage und bitte an ein HILFE-forum um hilfe zu bekommen. schließlich gibt es hilfe foren um zu helfen sonst würde es ja anders genannt -> sprich um hilfe zu bekommen musst du bezahlen weil is ja ne Dienstleistung -> Office Dienstleistungsforum für Hilfesuchende ...
Rakorium hat geschrieben:Entweder gibt es eine Möglichkeit die Funktion bei OO ohne Makro zu lösen oder es bekommt jemand hin das Makro umzuschreiben auf OO
wenn du für irgendetwas hilfe brauchst wo du keine ahnung von hast wärst auch froh wenn dir jemand hilft / lösungen anbietet . ich geb zu anderen themen hilfe und verlage dafür nichts als gegenleistung weil es HILFE ist und KEINE Dienstleistung

@Balu

Bei Excel besteht die Möglichkeit nicht wie schon geschrieben -> zu viele zeilen mit zu vielen daten um das weiterzuverarbeiten
und wie auch bereits gesagt funktioniert alles in excel tadellos

Benutzeravatar
balu
********
Beiträge: 3666
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: Makro

Beitrag von balu » Di, 06.12.2011 23:52

@Rakorium

Es ist mir so was von Sch...egal wie Du dein Crossposting rechtfertigen willst, es ist und bleibt einfach eine F R E C H H E I T von dir !!!! :evil:

In wievielen Foren hast Du denn noch geschrieben? :twisted:
www.office-loesung.de
Dort hast Du ja das was Du wolltest bekommen; eine Makrolösung.

balu
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.

wehr rächtschraipfähler findet khan si behalden :D

Benutzeravatar
sven-my
*****
Beiträge: 358
Registriert: Fr, 14.12.2007 19:56

Re: Makro

Beitrag von sven-my » Mi, 07.12.2011 11:27

Hallo Klaus5,
Klaus5 hat geschrieben:
weils wichtig is
Nein, wenns wichtig wäre hättest Du Dich an allgemein übliche Regeln gehalten und nicht versucht den Eindruck zu erwecken Du willst hier bloß auf Kosten Anderer eine Antwort abgreifen.
lies Dir Deinen Satz nochmal in Ruhe durch --- Was, bitte schön soll der aussagen ?

Wenn ich eine Frage ins Forum stelle, WILL ich von ANDEREN eine Antwort - was ist ist sonst der Sinn und Zweck eines Forums ???
Wieso auf ANDERER Kosten ? Welche Kosten?
Zeit ? Wer keine Zeit hat soll nicht antworten, Du scheinst ja mehr Zeit als genug zu haben, wenn Du Deine Zeit mit kleinlicher Quengelei verplamperst.

Was stellst Du für Regeln auf ? wieviel Stunden nach einer für mich nicht befriedigenden Antwort darf ich denn meine Frage in einem anderen Forum stellen ?
Wenn Du Dir Fachliteratur besorgst, nimmst Du sicherlich auch nicht nur einen einzigen Autoren!

Frage an ALLE,

Was ist daran so verwerflich, in mehreren Foren die gleiche Frage zu stellen ???

gruß
sven-my
win7 prof / AOO 4.1.2 & AOO 3.4.0 portable

freedom
********
Beiträge: 2190
Registriert: Do, 16.08.2007 15:12

Re: Makro

Beitrag von freedom » Mi, 07.12.2011 12:04

Was ist daran so verwerflich, in mehreren Foren die gleiche Frage zu stellen ???
Sven, das hatten wir schon unzählige Male.
Nicht OK ist es nur, wenn einer seine Frage in mehrere Foren kopiert
und sie nicht referenziert, schlimmstenfalls nicht einmal überall mitteilt,
dass er eine Lösung bereits bekommen hat.


Das ergibt die unschöne Situation:
Das Forum A liefert ihm die Lösung, Forums B, C, D, …. wissen nichts davon,
und machen sich völlig unnötig Gedanken über ein Problem, dass nicht mehr existiert.

Auch wenn das für dich gut zu sein scheint → es IST nicht gut.
Mit Menschen, von denen man Hilfe erwartet, sollte man nicht so umgehen.

http://das-excel-forum.de/cross.htm
http://portal.msxforum.de/modules/imglo ... entryID=27
https://secure.wikimedia.org/wikipedia/ ... ltiposting

Ciao

Rakorium

Re: Makro

Beitrag von Rakorium » Mi, 07.12.2011 19:17

So die Lösung is da

braucht euch also nicht mehr zu interessieren...

für jemand der die lösung braucht

Code: Alles auswählen

Option Explicit

Public Function SVERWEIS2(Kriterium As String, arrTmp, SuchSpalte As Integer, ErgebnissSpalte As Integer, Optional Unikate As Boolean, Optional Trenner As String) As String
Dim L As Long
Dim Mydic As Object
If IsMissing(Unikate) Then Unikate = True
If IsMissing(Trenner) Then Trenner = ", "
Set Mydic = CreateObject("Scripting.Dictionary")
If Unikate = True Then
    On Error Resume Next
    For L = 1 To UBound(arrTmp)
        If arrTmp(L, SuchSpalte) = Kriterium Then Mydic.add (arrTmp(L, ErgebnissSpalte), 0)
    Next
    SVERWEIS2 = Join(Mydic.keys, Trenner)
    Else:
    For L = 1 To UBound(arrTmp)
        If arrTmp(L, SuchSpalte) = Kriterium Then Mydic.add(L, arrTmp(L, ErgebnissSpalte))
    Next
    SVERWEIS2 = Join(Mydic.items, Trenner)
End If
End Function
Danke an sven-my es gibt noch mehr die in mehreren Foren posten um antworten zu erhalten.

nicht jeder ist bei 100 verschiedenen Excel Hilfe Foren angemeldet um da jedem zu helfen. vll sucht man sich ja das forum aus was einem gefällt und der is vll gerade der richtige der eine frage beantworten kann der helfen will

klar weis ich ich arbeit anderer zu schätzen bin auch rensi dankbar für das ergebnis selbst wenn er dafür geld verlangt hätte UND dafür sind "Programmierer" schließlich da die ich wiederhole mich noch mal eine Dienstleistung anbieten in dem Falle eine kostenlose Hilfe und wer nicht helfen möchte sollte einfach die klappe halten und keine negativbeiträge schreiben die zur lösung des problems nicht helfen !

wie schade das es solche leute gibt die anstatt sich gedanken zu nem problem zu machen und anderen helfen ... andere leute zu erziehen ungeschriebene regeln zu beachten und zu befolgen

f

Re: Makro

Beitrag von f » Mi, 07.12.2011 19:35

Rakorium hat geschrieben:wie schade das es solche leute gibt die anstatt sich gedanken zu nem problem zu machen und anderen helfen ... andere leute zu erziehen ungeschriebene regeln zu beachten und zu befolgen
schade, dass es solche Leute wie dich gibt, die nicht in der Lage sind zu begreifen,
was man versucht ihnen zu vermitteln.
Dabei waren es ganz einfache Dinge. Es ging ja um ganz normales Benehmen - also nichts besonders Schweres
oder Ungewöhnliches.

DH1806
***
Beiträge: 67
Registriert: Mi, 23.11.2011 12:56

Re: Makro

Beitrag von DH1806 » Mi, 07.12.2011 21:28

Man hätte es auch einfach lösen können, indem du sagst "Gut, wusste ich nicht, kommt nicht mehr vor"... so läufts dann auf den schei* hier raus..

Gert Seler
*******
Beiträge: 1763
Registriert: Di, 03.10.2006 18:05

Re: Makro

Beitrag von Gert Seler » Do, 08.12.2011 11:09

Hallo Zusammen,
@ Rakorium
Das "OOo_Forum" bzw deren "Freiwillige-Helfer" sind nicht dafür da Deine "Faulheit zu stärken".
Zweitens mußt Du ja bereits in "einem" bzw mehreren "Excel-Foren" ( Crossposting ? ) nachgefragt haben,
bevor die "OOo-" oder "Libre-Office-Foren" mit Crossposting abgefragt wurden.
Das heißt auch, "Nur weil Du zu F a u l bist, überhaupt einen eigenen Gedanken an die Lösung Deines
Problems zu verschwenden, "Ich bin doch zu höherem geboren und die anderen sind doch nur meine Sklaven !".
Oder Dein Verhalten zeigt auf, das Du ein "Angeber" bist der seinen Vorgesetzten mit "anderer Leute Arbeit"
aufzeigen will, "Chef ich allein bin nur für höhere Weihen geeignet.

" Dein Geist ist schwach !". Da "MS-Excel" bereits die Waffen gestreckt hat, handelt es sich entweder um eine
sehr alte Version "xls97" oder derjenige welcher das "xls-Programm inclusive Makro" erstellt hat, hatte auch
sehr wenig "Kenntnis" von "xls plus vba-Programmierung".
Denn die Lösung ist sehr einfach und vor allem "ohne Makro möglich" !!!


Gert Seler
Es gibt nichts gutes, außer man tut es.
Win7_64 / LO_4.4.5.2

Gast

Re: Makro

Beitrag von Gast » Do, 08.12.2011 11:57

Gert Seler hat geschrieben:Hallo Zusammen,
Denn die Lösung ist sehr einfach und vor allem "ohne Makro möglich" !!! [/b]

Gert Seler
na dann ma her mit der Lösung

Antworten