Per Makro prüfen und dann kopieren

Hallo!
Ich habe in einer Arbeitsmappe eine Matrix, bei der links Ortsnamen stehen, rechts davon Zahlen.
Das Makro soll in der Spalte rechts der Ortsnamen oben beginnend übeprüfen, ob der Wert größer 0 ist, falls ja, soll der der Ortsname der Zeile in eine neue Arbeitsmappe kopiert werden und die Zahl! Für jede Spalte soll eine neue Arbeitsmappe erstellt werden!

Ortsname Zahl1 Zahl2 Zahl3
Berlin 0 3 4
Hamburg 3 4 5
Aachen 1 0 0

In Arbeitsmappe „Zahl1“ soll dann folgendes Stehen:
Hamburg 3
Aachen 1

Wäre echt nett, wenn das jemand als Makro formulieren könnte, komme damit garnicht zurecht!

Vielen vielen Dank!

Viele Grüße

Flo

Hallo Flo

ohne Makro geht das auch

http://www.hostarea.de/server-09/September-35715df14…

mfG Hermes

Hallo!

danke, für die Hilfe, allerdings geht das nur, wenn die Zahlen immer größer 0 sind, falls sie 0 sind, dann schreibt er mir den Ort trotzdem hin! Das wollte ich ja vermeiden!
Trotzdem danke für die Mühe!

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Das Makro soll in der Spalte rechts der Ortsnamen oben
beginnend übeprüfen, ob der Wert größer 0 ist, falls ja, soll
der der Ortsname der Zeile in eine neue Arbeitsmappe kopiert
werden und die Zahl! Für jede Spalte soll eine neue
Arbeitsmappe erstellt werden!

Hi Florian,

die Datei ist die Arbeitsmappe, du minst tabellenblatt.

Sub Kopier()
Dim B As Integer
With Worksheets(1)
 If Not .AutoFilterMode Then .UsedRange.AutoFilter
 For B = 2 To 4
 Call Blatt(.Cells(1, B))
 .Range("A1:d1").AutoFilter Field:=B, Criteria1:="\>0"
 .Columns(1).Copy Destination:=Worksheets(.Cells(1, B).Value).Range("A1")
 .Columns(B).Copy Destination:=Worksheets(.Cells(1, B).Value).Range("B1")
 If Worksheets(.Cells(1, B).Value).AutoFilterMode Then Worksheets(.Cells(1, B).Value).UsedRange.AutoFilter
 Next B
 .UsedRange.AutoFilter
 .Activate
End With
End Sub
'
Sub Blatt(ByVal B\_Name As String)
Dim wks As Worksheet, Vorh As Boolean
For Each wks In Worksheets
 If wks.Name = B\_Name Then
 Vorh = True
 Exit For
 End If
Next wks
If Vorh = False Then
 Worksheets.Add after:=Worksheets(Worksheets.Count)
 ActiveSheet.Name = B\_Name
End If
End Sub

Gruß
Reinhard

Vielen Dank für die Mühe, klappt einwandfrei!

http://www.hostarea.de/server-09/September-cb9d310e7…

mfG Hermes

Grüezi Hermes

http://www.hostarea.de/server-09/September-cb9d310e7…

Ich find deine hochgeladenen Mappen und Lösungen gut.

Könntest Du dich aber nicht dazu durchringen, die effektiven Lösungen hier im Brett zu schildern und zu erklären?

Wenn mal dein WebSpace tot ist oder aufgeräumt wird verlieren deine Beiträge die nur aus einem DownLoad-Link bestehen ernorm an Wert und Bedeutung.
Auch für das Archiv ist es sinnvoller wenn der Lösungsweg im Beitrag enthalten ist, dann kann man auch danach suchen und darauf verweisen - bei einem reinen Link ist das doch erheblich schwieriger.

Bitte überdenke doch daher die Lösungen hier zu entwickeln - das ist aber nur meine Ansicht zu diesem Punkt; vielleicht sind da die Moderatoren von W-W-W anderer Ansicht; dann mögen sie mich korrigieren und/oder diesen Beitrag entfernen.

Mit freundlichen Grüssen
Thomas Ramel

  • MVP für Microsoft-Excel -
    [Win XP Pro SP-2 / xl2003 SP-3]
1 Like

Hallo Thomas
Dein Einwand ist berechtigt.
Allerdings ist die Darstellungsmöglichkeit hier doch sehr beschränkt.
Aber ich will mich gerne bemühen…
mfG Hermes

Grüezi Hermes

Dein Einwand ist berechtigt.

Fein, dass wir hier auf derselben Linie liegen :smile:

Allerdings ist die Darstellungsmöglichkeit hier doch sehr
beschränkt.

Schau dir doch mal die Codes unter [FAQ:2363] näher an.
Ich habe mir diese auf zwei Buttons in der Symbolleiste gelegt und kann so sehr bequem und einfach Tabellendarstellungen erzeugen und dann hier in einen Beitrag kopieren.

Mit freundlichen Grüssen
Thomas Ramel

  • MVP für Microsoft-Excel -
    [Win XP Pro SP-2 / xl2003 SP-3]

Hallo Thomas

leider ist die FAQ 2363 für mich völlig unverständlich.
Ob das bei Betriebssystem VISTA überhaupt geht?

mfG Hermes

Grüezi Hermes

leider ist die FAQ 2363 für mich völlig unverständlich.
Ob das bei Betriebssystem VISTA überhaupt geht?

Das hat mit Vista nichts zu tun; das bezieht sich nur auf Excel.
Kennst Du dich mit VBA-Code ein wenig aus?
Dann ist die Einbringung des Codes nicht sehr schwer.

Die Bescheibung zum Kopieren und Einfügen des Codes ist IMO recht klar, da kannst Du nicht viel falsch machen.
Einzig einen neuen Button in der Symbolleiste kannst Du in xl2007 (falls Du dieses verwendet) nicht erzeugen, da musst Du die QAT, die Schnellzugriffsleiste ganz oben verwenden.

Aber sonst sollte das auch mit Vista ohne Probleme funktionieren.

Mit freundlichen Grüssen
Thomas Ramel

  • MVP für Microsoft-Excel -
    [Win XP Pro SP-2 / xl2003 SP-3]

Kennst Du dich mit VBA-Code ein wenig aus?

Nein - ich bin Excel-Anwender
von VBA verstehe ich nur sehr wenig - oder fast nichts.

Die Bescheibung zum Kopieren und Einfügen des Codes ist IMO
recht klar

für mich nicht

Einzig einen neuen Button in der Symbolleiste kannst Du in
xl2007 (falls Du dieses verwendet) nicht erzeugen, da musst Du
die QAT, die Schnellzugriffsleiste ganz oben verwenden.

Ja - ich arbeite mit Excel aus Office 2007
Ja - ich habe die Symbolleiste für den Schnellzugriff (wenn auch nicht ganz oben)

Und…
ich verstehe die Anleitung nicht einmal näherungsweise.

Tut mir leid.

Im Übrigen empfinde ich so, dass die hier sehr häufig angebotenen VBA-Lösungen (bei angefragten Problemen) den einfachen Anwendern der Exceltabellen keine wirkliche Hilfe sind.
Man kann nicht davon ausgehen, dass mit dem Kauf eines PC’s jeder den Wunsch verbindet, zum Programmierer zu werden.
Ich weiß natürlich schon, dass mit VBA oft wesentlich zugeschnittenere Lösungen gestrickt werden können. Aber diese Lösungen bleiben für die überwiegende Anzahl der Excel-Nutzer „Böhmische Dörfer“. Eine Sache funktioniert dann, ohne dass man weiß warum.
An der Art der hier gestellten Anfragen sehe ich, dass man die normalen Excel-Bordmittel nicht kennt und nutzt, sich aber nach VBA-Lösungen umschaut, die dann kaum verstanden werden.
Hilfe zur Selbsthilfe bedeutet bei Excelproblemen doch eher, dass man mithilft eine Basis zu vermitteln.
Für VBA würde ich mir ein separates Forum wünschen.

mfG Hermes

Grüezi Hermes

Kennst Du dich mit VBA-Code ein wenig aus?

Nein - ich bin Excel-Anwender
von VBA verstehe ich nur sehr wenig - oder fast nichts.

OK, das macht die Herausforderung dann etwas grösser.

Die Bescheibung zum Kopieren und Einfügen des Codes ist IMO
recht klar

für mich nicht

Einzig einen neuen Button in der Symbolleiste kannst Du in
xl2007 (falls Du dieses verwendet) nicht erzeugen, da musst Du
die QAT, die Schnellzugriffsleiste ganz oben verwenden.

Ja - ich arbeite mit Excel aus Office 2007
Ja - ich habe die Symbolleiste für den Schnellzugriff (wenn
auch nicht ganz oben)

Und…
ich verstehe die Anleitung nicht einmal näherungsweise.

Tut mir leid.

Das muss dir nicht leid tun; nicht jeder kann alles wissen, das geht uns allen so.

Im Übrigen empfinde ich so, dass die hier sehr häufig
angebotenen VBA-Lösungen (bei angefragten Problemen) den
einfachen Anwendern der Exceltabellen keine wirkliche Hilfe
sind.

Wenns denn nicht anders geht ist VBA genau das Richtige.

Ich weiß natürlich schon, dass mit VBA oft wesentlich
zugeschnittenere Lösungen gestrickt werden können. Aber diese
Lösungen bleiben für die überwiegende Anzahl der Excel-Nutzer
„Böhmische Dörfer“. Eine Sache funktioniert dann, ohne dass
man weiß warum.

Das liegt dann meist am User selbst, der ofe ‚schnell schnell‘ eine Lösung möchte, im endeffekt aber nicht bereit ist, sich selbst mit der Matrie zu befassen.

Das sehe ich auch in anderen Foren, muss aber auch sagen, dass dies nicht immer der Fall ist - viele bemühen sich wirklich redlich und sind sich nach der Lösung des Problems auch für ein Feedback nicht zu schade.

An der Art der hier gestellten Anfragen sehe ich, dass man die
normalen Excel-Bordmittel nicht kennt und nutzt, sich aber
nach VBA-Lösungen umschaut, die dann kaum verstanden werden.

Ja, wenn VBA drauf steht ist halt alle besser - so die Ansicht vieler…

Hilfe zur Selbsthilfe bedeutet bei Excelproblemen doch eher,
dass man mithilft eine Basis zu vermitteln.
Für VBA würde ich mir ein separates Forum wünschen.

Das gibt es hier bereits, wobei dir Grenzen natürlcih immer fliessend sind:

http://www.wer-weiss-was.de/app/service/board_navi?i…

Mit freundlichen Grüssen
Thomas Ramel

  • MVP für Microsoft-Excel -
    [Win XP Pro SP-2 / xl2003 SP-3]

Hi Hermes,

Kennst Du dich mit VBA-Code ein wenig aus?

Nein - ich bin Excel-Anwender
von VBA verstehe ich nur sehr wenig - oder fast nichts.

Die Bescheibung zum Kopieren und Einfügen des Codes ist IMO
recht klar

für mich nicht

davon habe ich nix, wenn du exakter beschreibst was du nicht verstehst kann man die Beschreibung verbessern.

Einzig einen neuen Button in der Symbolleiste kannst Du in
xl2007 (falls Du dieses verwendet) nicht erzeugen, da musst Du
die QAT, die Schnellzugriffsleiste ganz oben verwenden.

Ja - ich arbeite mit Excel aus Office 2007
Ja - ich habe die Symbolleiste für den Schnellzugriff (wenn
auch nicht ganz oben)

Nach meiner Kenntnis läuft es problemlos verschieden Excelversionen auf einem Rechner gleichzeitig zu haben. Einzig bei der Installation strikt von „alt“ bis „neu“ installieren.
Denn 2007 weiß daß es 2003 gibt, umgekehrt nicht.

Und…
ich verstehe die Anleitung nicht einmal näherungsweise.

s.o.

Im Übrigen empfinde ich so, dass die hier sehr häufig
angebotenen VBA-Lösungen (bei angefragten Problemen) den
einfachen Anwendern der Exceltabellen keine wirkliche Hilfe
sind.

Kurzfristig sicher. Hat ein User schon tagelang an einemproblem festgehangen nimmt er jede Lösung, Hauptsache ist erstmal daß das Problem gelöst ist.

Aber hier prellen (Excel-) Wissenswelten zusammen. Egal ob ich dem User einen kleinen Vba-Code schreibe, oder er bekommt eine Excelformellösung die z.B. so aussieht:

=WENN(CODE(RECHTS(A1;1)) > 64;LINKS(A1;LÄNGE(A1)-1)*1000+CODE(RECHTS(KLEIN(A1);1))+WENN(CODE(RECHTS(A1;1))

Hallo Reinhard
die Punkte 1 bis 8 der FAQ" 2363 verstehe ich leidlich (wenn es auch bei Excel aus Office 2007 die „Extras“ nicht gibt).
Trotzdem gelingt es das Modul1 nach Wunsch zu basteln.
Wobei unklar ist, ob der „nachfolgende Code“ in das blank gemachte Modul einkopiert werden soll, oder ob der vorher entstandene „Klein-Code“ noch eine weitere Rolle spielt.
Ich habe ihn mal gelöscht und den „nachfolgenden Code“ einkopiert.
Ab jetzt geht gar nichts mehr.

Für mich ist die Ausführung „Starten der Makros:“ völlig unklar.

Ich erstelle in einem Excel-Tabellenblatt eine kleine Beispiel-Tabelle, welche ich zu WWW übertragen will.
Wie soll das nun gehen ?

Hi Hermes,

die Punkte 1 bis 8 der FAQ" 2363 verstehe ich leidlich (wenn
es auch bei Excel aus Office 2007 die „Extras“ nicht gibt).
Trotzdem gelingt es das Modul1 nach Wunsch zu basteln.
Wobei unklar ist, ob der „nachfolgende Code“ in das blank
gemachte Modul einkopiert werden soll, oder ob der vorher
entstandene „Klein-Code“ noch eine weitere Rolle spielt.
Ich habe ihn mal gelöscht und den „nachfolgenden Code“
einkopiert.
Ab jetzt geht gar nichts mehr.

Für mich ist die Ausführung „Starten der Makros:“ völlig
unklar.

manches was du sagst gibt mir ja die Möglichkeit etwas zu verbessern

Schau mal hier:

/t/bitte-an-alle-excelianer-die-noch-kein-vba-kennen…

über 2000 Klicks, Rückmeldungen an mich gleich Null, wie soll ich denn dann wissen was nicht verstanden wurde und wie ich das verbessern könnte?

Lassen wir mal XL2007 weg, wenn du mir sagst, meine Punkte 1-8 sind leidlich verständlich, so habe ich natürlich gleich die Nachfrage was genau ist da unklar.

Dito wenn Punkt 9 völlig unverständlich ist.

Damit kann ich was anfangen, vielleicht auch mit Austausch mit jemandem der kein Vba kann die Informationen so zu verbessern daß auch ein Vba-Unkundiger sie versteht.

Aber wenn ich keine Rückmeldungen kriege, was soll ich da tun?
Insofern ist es sehr gut wenn du genau sagst was du da nicht verstehst.

Ich wäre sehr froh wenn da nur 2% der 2000 Klicker mal gesagt hätten was sie nicht verstehen.

Gruß
Reinhard

Reinhard
Zu 1.
Wo befindest Du Dich, wenn Du Alt+F11 drückst (in Excel-Tabelle?)
Zu 2.
Wenn „VBA-Projekt(Personl.xls)“ vorhanden ist…dann….(wenn aber nicht?)
Zu 3.
Excel aus Office 2007 kennt keine „Extras“ (aber Register „Ansicht“, dort „Makros“)
Zu 4.
Entstehendes kleines Makro später wieder löschen oder Code dahinein fügen?
Zu 7.
Code in blankes Modul einkopieren, oder zwischen das bestehende Makro?

„Starten der Makros“
Je nach dem was man machen will…
Was sind die beiden Alternativen?
Möglichkeit 1 Bereich markieren (wozu?)
Möglichkeit 2 erstellte Tabelle in WWW übertragen (wie?)

mfG
Hermes

Hi Hermes,

das ist doch was, damit kann ich was anfangen, aber erst ab Morgen, bin grad müde.

Was da überhaupt in der FAQ steht muß ich morgen erstmal nachlesen, lang her daß ich das schrieb.

Beim ersten Überflug über deine Reklamationen, ich gehe davon aus, nahezu alle kann ich insofern abstellen durch bessere Beschreibung, naja, zumindest versuchen.

Abgesehen von der XL2007 Problematik, da ich die Version nicht installiert habe weiß ich absolut nicht wo man da wie was macht.

Und zu 1) mit Alt+F11 wechselst du zwischen Excel und dem VB-Editor hin und her.

Bei den anderen Punkten muß ich erstmal nachlesen was ich da schrieb.

Gruß
Reinhard

Grüezi Hermes

Fein, dass Du so konkrete Fragen stellst - das macht die Beantwortung einfach(er) und bringt dich schnell weiter.

Reinhard
Zu 1.
Wo befindest Du Dich, wenn Du Alt+F11 drückst (in
Excel-Tabelle?)

Ja, in der Excel-Tabelle - die Tastatur-Kombination öffnet den VBA-Editor.

Zu 2.
Wenn „VBA-Projekt(Personl.xls)“ vorhanden ist…dann….(wenn aber
nicht?)

Dann einfach eine anlegen (lassen) indem Du ein kleines Makro aufzeichnest und in der ‚Persönlichen Arbeitsmappe‘ speicherst.

Zu 3.
Excel aus Office 2007 kennt keine „Extras“ (aber Register
„Ansicht“, dort „Makros“)

Ja, das ist eine der Neuerungen in xl2007, die Du aber selbst rausgefunden hast - gut so!

Zu 4.
Entstehendes kleines Makro später wieder löschen oder Code
dahinein fügen?

Wie lautet denn das Makro das da ‚entsteht‘?

‚Option Explicit‘ etwa?
Das wäre gut so und solltest Du nach Möglichkeit stehen lassen.

Zu 7.
Code in blankes Modul einkopieren, oder zwischen das
bestehende Makro?

In aller Regel in das blanke Modul, aber siehe oben.

„Starten der Makros“
Je nach dem was man machen will…
Was sind die beiden Alternativen?
Möglichkeit 1 Bereich markieren (wozu?)

Um den markierten Bereich aufzubereiten und in die Zwischenablage zu kopieren - das macht das Makto dann von selbst und zeigt zur Kontrolle das Ganze noch im Windows-Editor an.

Möglichkeit 2 erstellte Tabelle in WWW übertragen (wie?)

Einfach hier einen Beitrag schreiben, dann nach obigem Schema einen Bereich auslesen und hier mit STRG+V einfügen.

Ich finds gut, dass Du den Vorschlägen nachgehst und umzusetzen versuchst - bei weitren Fragen melde dich einfach wieder.


Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -

Hallo Thomas
Ich komme bis zum Punkt „Ausführen“.
Dabei wird dann die Fehlermeldung ausgelöst:
„Fehler beim Kompilieren
benutzerdefinierter Typ nicht definiert“

Als Objekt habe ich eine einfache Exceltabelle verwendet, bei der ich nach eurer Anleitung das Makro erstellt habe.
Hier habe ich eine kleinen Bereich markiert.
Der Rest funktioniert nicht.
Muss ich die Tabelle vorher zu einer XLS-Datei konvertieren?

mfG Hermes