Excel Makro

jenskremer

Newbie
Registriert
Juli 2013
Beiträge
3
Hallo zusammen,
ich muss einen Excel Makro schreiben und würde mich freuen, wenn mir hier jemand ein paar Tipps geben könnte.

Machen muss ich folgendes:
1. Suche nach der Zelle, die mit dem Wert „A“ beginnt und kopieren der Zeichen 23 – 30
2. Suche nach der Zelle, die mit dem Wert „D“ beginnt und kopieren der Zeichen 4 – 39
3. Suche nach der Zelle, die mit dem Wert „E“ beginnt und kopieren der Zeichen 4 – 39
4. Suche nach der Zelle, die mit dem Wert „F“ beginnt und kopieren der Zeichen 4 – 7

Und das dann wiederholen, dass alle entsprechenden Zellen ausgelesen werden, in die mit den Buchstaben beginnen, das können mehrere in einer Datei sein. Und das Ganze müsste dann noch irgendwie neben die bestehenden Zellen oder in ein neues Arbeitsblatt kopiert werden.

Ich habe schon einiges zu dem Thema gefunden, leider hat mir aber so konkret nichts weitergeholfen. Es wäre super, wenn mir hier jemand helfen könnte.

Vielen Dank
 
Das geht kaum mit einem Makro, dazu arbeitest du dich am besten in VBA ein. Und dann sollte das ken Problem sein.
 
Hallo, vielen Dank für die Antwort. Ich meinte ja VBA und hatte mir ein paar Tipps hierzu erhofft.
 
Wenn in A1 der Wert steht den du auswerten willst, pack in B1 folgende Formel

=WENN(LINKS(A1;1)="a";RECHTS(LINKS(A1;30);7);WENN(LINKS(A1;1)="d";RECHTS(LINKS(A1;39);35);WENN(LINKS(A1;1)="e";RECHTS(LINKS(A1;39);35);WENN(LINKS(A1;1)="f";RECHTS(LINKS(A1;7);3);""))))

Mal grob erklärt

Wenn der Wert von A1 mit "a" anfängt, dann nimm von links 30 Zeichen und von diesen 30 Zeichen die rechten 7. Ansonsonten prüfen auf d usw. ich hoffe das hilft dir weiter.

VBA geht auch, aber so ist es schneller gemacht ^^
 
Zuletzt bearbeitet:
Hallo und Danke, das hilft und ist der manuelle Weg!
Gibt es nun eine "Übersetzung" für eine automatisierung mit VBA?
Ich hatte mir schon die Befehle "Range("A1").Select", "MsgBox Mid$(sText, 4)" und „ActiveSheet.Paste“ herausgesucht, aber ich weiß nicht, wie ich das wirklich zusammenstellen muss.
 
jenskremer schrieb:
Suche nach der Zelle
Du solltest den Suchbereich eingrenzen, du kannst ja schlecht das ganze Blatt durchsuchen

jenskremer schrieb:
Und das dann wiederholen, dass alle entsprechenden Zellen ausgelesen werden, in die mit den Buchstaben beginnen, das können mehrere in einer Datei sein.

Wenn Du die Ergebnisse aus mehreren Dateien holen willst, kommt noch ein Dateihandling hinzu.
 
Sub Makro1()
Dim Cell As Range

For Each Cell In Sheets(1).UsedRange
Select Case Mid$(Cell.Value, 1, 1)
Case "a"
Sheets(2).Range(Cell.Address).Value = Mid$(Cell.Value, 23, 7)
Case "d"
Sheets(2).Range(Cell.Address).Value = Mid$(Cell.Value, 4, 35)
Case "e"
Sheets(2).Range(Cell.Address).Value = Mid$(Cell.Value, 4, 35)
Case "f"
Sheets(2).Range(Cell.Address).Value = Mid$(Cell.Value, 4, 3)
End Select
Next
End Sub


Er durchsucht nunr alle benutzten felder von Tabelle1 und nach deinen Kriterien.
Findet er in A1 einen Treffer, schreibt er das ergebnis in A1 in Tabelle2, findet er was in B55 schreibt er es in B55 Tabelle2.

Wie du das genau haben möchtest musst du dann weiter verhackstücken, aber ich denke das ist dir schon mal eine Hilfe.
 
Ich habe bei dem Makro Bauchschmerzen. Wegen des UsedRange. Die Unfälle die ich mit so was hatte haben mich von allen Funktionen geheilt die wie Tastenkombinationen Strg+Ende usf. arbeiten.

Und effektiv kann ich mich nur an miac anhängen:
Wohin genau muss denn das was wir da einsammeln sollen? rechts neben die Fundzelle oder in einer Fundspalte gesammelt (da bräuchte man u.U. eine Verbindung zur Herkunft).
Mehrere Dateien (Mappen) abzulaufen und auch deren sämtlich ›Tabellen‹ ([Tabellen]Blätter) ist nichts Kompliziertes (und um so besser wenn man Regeln hat wie man sich orientieren muss). Dann Zellen ablaufen und prüfen ist ach einfach.
Wir brauchen eben nur die Rahmenbedingungen :)

CN8
 
Zurück
Oben