# Excel-Makro für Wörter aus Zeile auslesen



## NewProggie (22. November 2004)

Hallo zusammen,

ich hab jetzt schon länger gegoogelt und selbst herumprobiert.
Folgendes Problem:
Ich hab hier ein Excel-Sheet mit x Spalten/Zeilen ungefähr nach folgendem Schema-

                           Standort1             Standort2          Standort3           .......
OS:                       Linux                   Linux                  Win2000        .........
Version:                 1.3                      2.0                      SP2            ...........

.....

Ich muss jetzt ein Makro programmieren, was mir aus den verschiedenen Spalten die ganzen Begriffe eben ausliest und diese dann selbstständig summiert (für Diagramme).
Ungefähr dann so:

OS          Anzahl:
Linux:        12
Win200      7
Suse          4
usw.
Am besten wäre es, wenn ich gar keine Begriffe vorgeben muss, d.h. wenn jemand als Betriebssystem Katze einträgt, dann würde eben auch Katze erfasst und gezählt werden.

Ich hab es alleine leider nicht hinbekommen. Deswegen wäre ich sehr dankbar für einen Tipp, Link oder Hilfestellung.
Vielen Dank schonmal (für die, die das überhaupt gelesen haben )


----------



## GeHo (22. November 2004)

Sortier doch die Spalte mit den OSs, so das gleiche OSs untereiander stehen und guck dann mit einer Objektvariablen, ob in der aktuellen Zelle das selbe steht, wie in der Zelle dadrüber.

Ich hab mal bezogen auf dein Problem und der Objektvariablen ein Beispiel angehängt.
PS.: Ist vielleicht nicht schön programmiert, sollte aber den Zweck erfüllen ;D


----------



## NewProggie (22. November 2004)

sorry,

ich hab leider nur ein kleines Beispiel gepostet.
Es ist so, dass dieses Excel-Sheet sehr umfassend ist (an die 50 Spalten und 2500 Zeilen) und man nicht einfach so jetzt die Struktur umstellen kann.

Dennoch vielen Dank für dein Code-Beispiel, aber mir wird's leider nicht viel nützen


----------



## GeHo (22. November 2004)

Notfalls sollte es dennoch so klappen: 
Denn du kannst natürlich nur die Spalte mit den OSs in ein extra Tabellenblatt kopieren und dann dort die Struktur umändern um die OSs zu zählen.
Ist vielleicht alles ein wenig unschön, aber funktionieren sollt es allemal. 
Vielleicht weiß  wer anders wie man das eleganter lösen kann...


----------



## NewProggie (23. November 2004)

urrgs,

wie komme ich denn an dein Script ran, dass ich es in meinem Sheet einfügen kann


----------



## NewProggie (23. November 2004)

Ich Blechdose,

hat sich erledigt...


----------



## NewProggie (23. November 2004)

nochmal urrgs,

soll kein Flaming werden, aber dein Makro konnte ich nicht ausführen

Fehlermeldung: DataOption1:=xlSortNormal --> Benanntes Argument nicht gefunden.



Vielen Dank für deine Hilfe


----------



## Leola13 (23. November 2004)

Hai,

hast Du es schon  mit der PIVOT-Tabellen Funktion versucht ?

oder geht dies in deinem Fall nicht ?

Poste doch mal eine abgespeckte, gezippte Excel Datei.

Ciao Stefan


----------



## NewProggie (23. November 2004)

ok,

hab mal ein Beispiel gepostet, un deutlich zu machen, was mein Problem ist.

Erklärung in Excel beigefügt


----------



## Leola13 (23. November 2004)

Hai,

Pivot Tabelle sag ich doch !   

Register Pivot 1            =  die Auswertung deiner Tabelle
Register Ursprung         =  deine Tabelle
Register Pivot 2            =  die Auswertung der erweiterten Tabelle, die Pivot Auswertung
                                       geht bis B30, kann aber beliebig groß gewählt werden,
                                       in dem Beispiel werden die entsprechenden Leerzeilen
                                       angegeben, dies lässt sich aber ausblenden
                                        ein Diagramm kannst Du über die entsprechende
                                       Schaltfläche sofort aufrufen
Register geändert          =  von mir erweiterte Tabelle

Ciao Stefan


----------



## NewProggie (23. November 2004)

hmm,

vielen Dank für deine Hilfe.

Ich hab aber gerade die Anweisung bekommen, dass man das aus den Originaldaten erzeugen muss, d.h. ich markiere eine Zeile (die erste Spalte ist dann die Kategorie, der Begriff, wie auch immer, alle nachfolgenden dann die Daten) und daraus am besten dann eine Übersicht / Diagramm erzeugt.

Ich suche jetzt erstmal nach Tutorials in der Art. Wird mir da Visual Basic weiterhelfen?


----------



## Leola13 (23. November 2004)

Hai,



> dass man das aus den Originaldaten erzeugen muss, d.h. ich markiere eine Zeile (die erste Spalte ist dann die Kategorie, der Begriff, wie auch immer, alle nachfolgenden dann die Daten) und daraus am besten dann eine Übersicht / Diagramm erzeugt


   ?   

Hab ich nicht verstanden.

Ciao Stefan


----------



## NewProggie (23. November 2004)

hmm, ok, also folgendermaßen:

Ziel soll es sein, dass man eine ganze Zeile markiert (Die Daten sind dementsprechend angeordnet), man danach einfach z.B. ein Makro ausführt, welches dann in einem neuen Blatt die markierte Zeile in einer Spalte anordnet, die darin vorkommenden Begriffe nach Häufigkeit zählt, diese ausgibt und das ganze dann in ein Diagramm einfügt.

Das Makro hab ich schon)

Mein Problem momentan ist einfach, dass ich nicht weiss, wie ich es erreiche, dass Namen in einer Spalte nach Häufigkeit gezählt werden. So z.B.

Softwareeinsatz (Fibu):

Excel
Excel
Tech Systems
LOGO
Tech Systems
irgendwas
usw.


--> und jetzt hier die Anzahl der einzelnen Begriffe:

Excel:   2
Tech Systems:   2
irgendwas:     4
usw..

Vielen dank nochmal für eure Hilfe


----------



## NewProggie (23. November 2004)

Das mit Pivot funktioniert leider auch nicht, da man eine erzeugte Pivot-Tabelle nicht mehr nachträglich ändern kann. Zumindest nicht die Überschriften...


----------



## Leola13 (24. November 2004)

Hai,

1. Möglichkeit 
Die Daten aus der Pivot-Tabelle per Formel (+Tabelle!A1) in eine anderes Datenblatt zu holen, welches Du nach deinen Wünschen beschriftest.

2. Möglichkeit wenn Du eine Liste (Spalte) mit mehrfach Eintarägen hast
Die Daten per  Daten - Filter - Spezialfilter (ohne Duplikate) noch einmal erzeugen und über =zählenwenn() die Anzahl zu ermitteln.

Ciao Stefan


----------

