Office: (Office 2007) Zeilen automatisch anderen Zeilen zuordnen

Helfe beim Thema Zeilen automatisch anderen Zeilen zuordnen in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo, ich habe eine Länder-Liste mit mehreren Spalten mit Werten, aber unterschiedlichen Zeilen, d.h. z.B. ich habe max. 237 Zeilen, aber die Spalte 2... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von User, 5. März 2008.

  1. Zeilen automatisch anderen Zeilen zuordnen


    Hallo,
    ich habe eine Länder-Liste mit mehreren Spalten mit Werten, aber unterschiedlichen Zeilen, d.h. z.B. ich habe max. 237 Zeilen, aber die Spalte 2 endet bei 199. Wegen der Zuordnung hatte ich zu jeder Spalte das entsprechende Land in eine leere Spalte davor kopiert. Nun stimmen aber die Zeilen nicht und ich muss manuell jeden Wert (mit der entsprechenden Länderspalte davor, die ich nach Sortierung lösche) in die richtige Zeile hoch/runterschieben.

    Gibt es hierfür eine Automatisierung?

    Danke
    L.

    :)
     
  2. Lade doch bitte mal eine Demo hoch - das erleichtert vieles !

    Berti
     
    Berti_S, 6. März 2008
    #2
  3. Hier mal ein Screenshot. Ich hätte eine MySQL-Datenbank zur Verfügung, wenn eine richtige Sortierung nur damit möglich ist...
     
    Lichtbrücke, 7. März 2008
    #3
  4. Zeilen automatisch anderen Zeilen zuordnen

    Also wenn ich dich recht verstehe hast du einige Spalten mit Informationen zu dem jeweils links davon stehendem Land.

    Z.B. Spalte A Ländernamen, Spalte B Einwohnerzahl, Spalte C Ländernnamen, Spalte D Fläche usw.

    Jetzt scheint es so, dass pro "Informations-Enheit" die Anzahl der Länder unterschiedlich ist, also z.B. bei Einwohnerzahl hast du alle Länder, bei Fläche fehlen einige Länder.

    Schlußendlich willst du alle Informationen, welche ein Land betreffen, in einer Zeile stehen haben. Bei für ein Land fehlenden Informationen soll eine leere Zelle stehen.

    So richtig verstanden ?


    Berti
     
    Berti_S, 7. März 2008
    #4
  5. Ja genau! Das ist mein Problem.

    Gibt es dafür eine Lösung?
     
  6. Hallo Lichtbrücke,

    ich habe mal etwas zurechtgebastelt:

    Private Sub Test()
    Dim lastRow, j As Long
    Dim lastCol, i As Integer

    lastCol = Cells(1, Cells.Columns.Count).End(xlToLeft).Column
    lastRow = Worksheets("Tabelle1").Cells(Rows.Count, 1).End(xlUp).Row

    'Sortieren Referenzspalten A, B
    Range("A1:B" & CStr(lastRow)).Select
    Selection.Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlGuess, _
    OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
    DataOption1:=xlSortNormal

    For i = 3 To lastCol - 1 Step 2
    lastRow = Worksheets("Tabelle1").Cells(Rows.Count, i).End(xlUp).Row
    Worksheets("Tabelle1").Range(Cells(1, i), Cells(lastRow, i + 1)).Select
    Selection.Sort Key1:=Worksheets("Tabelle1").Cells(2, i), Order1:=xlAscending, Header:=xlGuess, _
    OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
    DataOption1:=xlSortNormal
    For j = 2 To lastRow
    If Worksheets("Tabelle1").Cells(j, i).Value Worksheets("Tabelle1").Cells(j, 1).Value Then
    Worksheets("Tabelle1").Range(Cells(j, i), Cells(lastRow, i + 1)).Select
    Selection.Cut
    Worksheets("Tabelle1").Cells(j + 1, i).Select
    ActiveSheet.Paste
    lastRow = lastRow + 1
    End If
    Next j
    Next i

    End Sub

    Die Könner lachen jetzt bestimmt wieder über die Selects etc., aber ich kanns auf die Schnelle nicht besser.

    Ich setze voraus, dass in Spalte 1 (A) eine vollständige Länderliste steht, in Spalte B die dazu gehörigen ersten Infos.

    Ab Spalte C dann die weiteren Land -Info-Paare, welche auch unvollständig sein können. Wichtig ist nur, dass hier keine Länder auftauchen dürfen, welche in Spalte A nicht existieren.

    In Zeile 1 stehen Überschriften, ab dann folgen die Daten.


    Berti
     
    Berti_S, 7. März 2008
    #6
  7. Ich bin begeistert über den tollen Support.

    Könntest Du mir evtl. noch kurz erklären, wie ich das Script genau einsetzen muss? (Ich habe mit VB oder Makros keine Erfahrung)

    Super vielen Dank
    Lichtbrücke
     
  8. Zeilen automatisch anderen Zeilen zuordnen

    Per Alt F11 den VB-Editor öffnen, dann in der linken Projekt-Ansicht auf Tabelle1 (da hier ja hoffentlich die Daten stehen...) clicken, damit hast du dann rechts den Code-Bereich für dieses Sheet. Hier den Code einfach reinkopieren, den Cursor innerhalb des Codes platzieren und per F5 den Code ausführen.

    Ich empfehle allerdings dringend, vorher die Rohdaten irgendwo zu speichern!

    Berti
     
    Berti_S, 7. März 2008
    #8
  9. Moin, Berti_S,

    lastRow und lastCol sind vom Typ Variant, da nicht als Typ festgelegt - und das Selektieren ist absolut überflüssig, wenn man denn die Grundlagen von VBA beherzigt.
     
  10. Hallo jinxs,

    ich hatte doch lastRow und lastCol dimensioniert - oder stehe ich jetzt völlig auf dem Schlauch ?

    Zitat: "und das Selektieren ist absolut überflüssig, wenn man denn die Grundlagen von VBA beherzigt."

    Ich möchte nicht mit dir aneinandergeraten, aber mit solchen hingeworfenen Bröckchen wird mein Select-Problem nicht besser. Leider bin ich als Seiteneinsteiger kein Profi, ich bemühe mich nur, etwas einigermaßen Sinnvolles abzuliefern.

    Habe ich beim vorstehenden Problem eine andere Möglichkeit als Direktkopie und Löschen der aktuellen Zelle ?


    Berti
     
    Berti_S, 9. März 2008
    #10
  11. Moin, Berti_S,

    VBA ist wählerisch, die Variablen sind dimensioniert, aber vom Typ Variant. Eine Diemsnionierung wie

    Code:
    gibt den Variablen B1 und B2 den Typ Variant und nur der letzten Variablen B3 den für alle eigentlich vorgesehenen Typ Long. VBA selbst wertet dann die Variablen vom Typ Variant in den benötigten Typ um, aber das kostet (wenn auch unmerklich) Zeit und Speicherplatz:

    Code:
    Ergebnis bei mir in Excel97 im Direktfenster: zweimal String und einmal Integer.

    Für eine Dimesionierung von Long-Variablen sollte es dann so aussehen:

    Code:
    Zur Nichtnutzung von Select kann festgestellt werden, dass jede Range-Anweisung auch direkt genutzt werden kann. Statt also erst den Zellzeiger zu versetzen und Zellen auszuwählen, kann der Bereich direkt angegeben und ohne Versetzen des Zellzeigers angesprochen werden:

    Code:
    Und die eben angegebene Sortierung kann auch ohne Aktivierung für eine andere Tabelle durchgeführt werden:

    Code:
    Wichtig sind dabei die Punkte vor der Range-Angabe, die den Bezug zur Tabelle herstellen.


    Ja, den angezeigten Wert der Zellen in die Zellen einzufügen in der Art von
    Code:
    Das sollten wir eigentlich alle machen - und da schließe ich mich ein... *wink.gif* Ich hoffe, dass anhand dieser Antwort ein wenig besser dargestellt wird, worauf ich oben hingewiesen hatte.
     
  12. Danke jinxs,

    das hat mich wieder Schritte vorangebracht - es ist halt ein mühseliges Geschäft..


    Mit

    With Sheets("Tabelle1").UsedRange
    .Value = .Value
    End With

    komme ich noch nicht klar - hier wird doch dem gesamten genutzten Bereich des Sheets sein schon vorhandener Wert zugewiesen, oder ?
    Hat dies einen Bezug zur Anfrage der (sich nicht meldenden) Lichtbrücke ?

    Berti
     
    Berti_S, 10. März 2008
    #12
  13. Zeilen automatisch anderen Zeilen zuordnen

    Moin, Berti,

    nein, das war leider ein Verständisfehler meinerseits...
     
Thema:

Zeilen automatisch anderen Zeilen zuordnen

Die Seite wird geladen...
  1. Zeilen automatisch anderen Zeilen zuordnen - Similar Threads - Zeilen automatisch Zeilen

  2. Zeilen in Excel automatisch alle paar Zeilen einfügen

    in Microsoft Excel Hilfe
    Zeilen in Excel automatisch alle paar Zeilen einfügen: Hallo, ich bin über die Googlesuche hier gelandet und dachte ich hätte auch die Lösung für mein Problem schon gefunden. Doch der Beitrag war von 2006 und schon beim Eingeben in MS Office...
  3. Zeilen automatisch sperren mittels VBA (wenn Bedingung erfüllt)

    in Microsoft Excel Hilfe
    Zeilen automatisch sperren mittels VBA (wenn Bedingung erfüllt): Moin zusammen, folgendes Problem: Im Normalfall verzichte ich aus Gründen auf den Einsatz von VBA, aber dieses Mal komme ich nicht umher. Ich habe schon fleißig recherchiert und mich versucht,...
  4. Spesenzettel ohne leere Zeilen automatisch ausfüllen lassen

    in Microsoft Excel Hilfe
    Spesenzettel ohne leere Zeilen automatisch ausfüllen lassen: Guten Abend liebe Excel Helfer / innen Ich habe einen neuen Arbeitgeber. Der möchte eine Spesenabrechnung von mir bekommen. Ich habe für Euch mal meine bisherigen Eingaben als Datei angehängt...
  5. Zeile automatisch in Excel Tabellenformat einfügen, wenn letzte beschrieben

    in Microsoft Excel Hilfe
    Zeile automatisch in Excel Tabellenformat einfügen, wenn letzte beschrieben: Hallo ihr Lieben! Ich benötige bitte eure Hilfe: Ich habe in Excel eine Tabelle erstellt und diese auch als Tabelle formatiert. Jetzt würde ich gerne automatisch eine Zeile Zwischen der...
  6. Excel Macro automatischen Suchen in Zeilen und TextBox

    in Microsoft Excel Hilfe
    Excel Macro automatischen Suchen in Zeilen und TextBox: Hallo, Hoffe vielleicht das von euch jemand eine Idee hat hier bei meinem Problem. Denke mal der Code ist ziemlich unsauber, aber er funktioniert :D hehe, mein größeres Problem ist das er bei...
  7. Zeile Automatisch löschen

    in Microsoft Excel Hilfe
    Zeile Automatisch löschen: Hallo, ich möchte eine digitale Werkzeugausgabe erstellen. Mein Problem ist, das ich bei der automatischen Löschung von Zellen eine Fehlermeldung bekomme, wenn in Spalte 12 kein x steht. Die...
  8. Automatisches Befüllen

    in Microsoft Excel Hilfe
    Automatisches Befüllen: Hallo, ich habe eine Frage. Ich habe eine Tabelle, welche nur Spalte A beinhaltet mit mehreren Werten. In einer zweiten Tabelle möchte ich aus diese Spalte A lediglich alle 9 Zeilen haben. Also...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden