Werte aus Klammer übertragen
#1
Hallo, ich möchte ein Makro erstellen welche Werte aus einer Spalte in eine andere Tabelle einfügt. Dabei habe ich ein paar Probleme.

Teilweise gibt es Werte wie "(16/25)"; "(6/10)"; "(80/112)"; aber auch "(0/1)" "(-)" 
Das sind dann immer 2 unterschiedliche Werte die ich separat aufgelistet haben möchte.  "(-)" bedeutet dann (0/0) - schreibt es leider in der ersten Form auf.

Kann mir jemand eine Lösung erklären, wie ich die Werte aus der Klammer herausbekomme (bin leider nicht so begabt in Excel)
Top
#2
Hallo!

Dafür brauchst du kein Makro.
- Kopiere die komplette Liste in eine neue Tabelle
- Drücke Strg+h für Suchen/Ersetzen
- Ersetze "-" durch "0/0" (jeweils ohne Anführungszeichen) --> Alle ersetzen
- Ersetze "(" durch nichts --> Feld Ersetzen einfach leer lassen
- Ersetze ")" durch nichts
- Markiere die Spalte und wähle in der Menüleiste den Reiter Daten - Text in Spalten - Getrennt - Haken bei "Andere" setzen und den Schrägstrich eintragen - Fertig stellen

Et voila.

Alternativ - statt Text in Spalten - kannst du auch mit zwei Formeln in den Spalten daneben arbeiten:
Arbeitsblatt mit dem Namen 'Tabelle1'
ABC
216/301630

ZelleFormel
B2=LINKS(A2;FINDEN("/";A2)-1)
C2=RECHTS(A2;LÄNGE(A2)-LÄNGE(B2)-1)
Verwendete Systemkomponenten: [Windows (32-bit) NT 10.00] MS Excel 2016
Diese Tabelle wurde mit Tab2Html (v2.6.0) erstellt. ©Gerd alias Bamberg
Schöne Grüße
Berni
Top
#3
Hallo Marvin, :19:

wenn so etwas öfter vorkommt - hier mal eine mögliche Lösung per Makro: :21:
[attachment=25765]

Der erste Button extrahiert die Zahlen im gleichen Tabellenblatt in Spalte B und C.

Der zweite Button extrahiert die Zahlen in Tabellenblatt2 ohne Leerzeilen, wenn zwischen den Zahlen andere Dinge stehen. Hier wird auch - bei mehrmaligem ausführen des Makros - unten angefügt. Wenn du das nicht möchtest, musst du das Kommentarzeichen vor der Codezeile...

Code:
'Tabelle2.Rows("2:" & Tabelle2.Rows.Count).ClearContents

...entfernen.
Top
#4
Tut mir leid für die späte Antwort, hat etwas gedauert bis ich dazu kam es auszuprobieren. Confused

Es war eine sehr gute Idee mit "ersetzen" die ganzen Klammern und so weiter zu korrigieren. Habe jetzt eine grundsätzliche Lösung gefunden, dafür danke! :)

Code:
Sub Werte_uebertragen()
'
' Werte_uebertragen Makro
'

'
    Range("A41").Select
    Selection.Copy
        Range("D3").Select
    ActiveSheet.Paste
    Range("A43").Select
    Selection.Copy
        Range("H3").Select
    ActiveSheet.Paste
    Range("A45:B45").Select
    Selection.Copy
    Range("J3").Select
    ActiveSheet.Paste
    Range("A47:B47").Select
    Selection.Copy
    Range("M3").Select
    ActiveSheet.Paste
    Range("A49:B49").Select
    Selection.Copy
    Range("P3").Select
    ActiveSheet.Paste
    Range("A51:B51").Select
    Selection.Copy
    Range("S3").Select
    ActiveSheet.Paste
    
    Range("A52").Select
    Selection.Copy
        Range("U3").Select
    ActiveSheet.Paste
    Range("A53").Select
    Selection.Copy
        Range("V3").Select
    ActiveSheet.Paste
    Range("A54").Select
    Selection.Copy
        Range("W3").Select
    ActiveSheet.Paste
    Range("A55").Select
    Selection.Copy
        Range("X3").Select
    ActiveSheet.Paste
    Range("A56").Select
    Selection.Copy
        Range("Y3").Select
    ActiveSheet.Paste
    
    Range("A58:B58").Select
    Selection.Copy
    Range("Z3").Select
    ActiveSheet.Paste
    Range("A59").Select
    Selection.Copy
        Range("AB3").Select
    ActiveSheet.Paste
    Range("A60").Select
    Selection.Copy
        Range("AC3").Select
    ActiveSheet.Paste
    Range("A63:B63").Select
    Selection.Copy
    Range("AE3").Select
    ActiveSheet.Paste
    Range("A64").Select
    Selection.Copy
        Range("AG3").Select
    ActiveSheet.Paste
    Range("A65").Select
    Selection.Copy
        Range("AH3").Select
    ActiveSheet.Paste
    
End Sub


Allerdings ist es bei mir so, dass die "Quellspalte" (A) sehr lang ist.
Es wird von Eintrag A41 bis A65 die Werte in eine Tabelle übertragen (wobei nicht alle 25 Zeilen genommen werden). Die nächsten 25 Einträge (A66-A90) werden dann in die selbe Tabelle, nur eine Zeile darunter übertragen. (das insgesamt 34 mal)

Könnt ihr mir eine Lösung geben wie das einfach geht oder muss ich jetzt 33 mal copy-paste machen und die jeweiligen "Ranges" um 25 erweitern?
Top
#5
Könnte mir bitte jemand einen Tipp geben wie ich die anderen 33 Zeilen einfüge ohne dass ich jeden einzelnen Eintrag bearbeiten muss?
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste