online 1
gast (50)

/ Forum / Tabellenkalkulation

TabellenkalkulationTabellenkalkulation

Fragevon rapperzahn vom 07.10.2020, 11:28 Options

| Excel 2000 Makro zum gleichzeitigen Verschieben von Zeilen & Dateienabgleich |

Moin Moin,

ich habe ein Frage zu Excel (Version 2000) und Makros und zwar bekomme ich jeden Monat eine Liste mit 100 Namen, sortiert nach Einnahmen.
Dann habe ich eine Excel-Datei, in der auf dem ersten Blatt alle Adressen stehen und in dem zweiten Blatt weitere Informationen (aber auch nochmals der Name) stehen. Diese Datei ist auch nach Einnahmen sortiert, allerdings nach denen des Vormonats und soll jeden Monat anhand der 1. Datei aktualisiert werden.
Bisher musste das immer von Hand gemacht werden, d.h. die erste Datei wurde ausgedruckt (liegt aber auch alles Datei vor) und dann wurde sie mit der 2. Datei verglichen. D.h. es musste der Rang geändert werden und die Zeile dann an die neue Position verschoben werden. In einem zweiten Schritt musste dann in dem zweiten Blatt der 2. Datei ebenfalls die Zeilen angepasst werden, sodass z.B. in der Zeile 12 auch die Information zu dem Menschen stand, der auch im Blatt 1 in Zeile 12 stand.
Das wollte ich jetzt alles vereinfachen und habe mich so ein bissl informiert- die Lösung scheinen Makros zu sein, aber meine Fähigkeiten reichen hierfür leider nicht aus, daher bitte ich um eure Mithilfe für folgende Probleme:
PROBLEM 1: Sortieren der Daten in Datei 2, sowie Eingabe des neuen Rangs (das würde ja z.B. über eine Formel mit Zeile-1 funktionieren???) nach Vorgaben von Datei 1.

PROBLEM 2: Gleichzeitiges Verschieben der Zeilen in beiden Registerblättern der 2. Datei.

Zu berücksichtigen wäre noch, dass evtl. neue Namen in der Liste auftauchen.

Vielen Dank schonmal für eure Hilfe.

rapperzahn


Antwort schreiben

Antwort 1 von rapperzahn vom 07.10.2020, 12:08 Options

Moin Moin nochmals,

ich muss mich noch ein wenig berichtigen:
Und zwar wird in der Datei 2 in beiden Registerblättern eine neue Spalte hinzugefügt mit dem neuen Rank des aktuellen Monats, sodass der Rank des Vormonats dann in der Spalte 2 steht.

Das nur so als Info.

Vielen Dank schonmal

rapperzahn

Antwort 2 von rapperzahn vom 17.10.2020, 14:02 Options

Moin Moin,

ich glaube, ich habe mich etwas umständlich ausgedrückt.
Hier möchte ich nochmals mein Problem erläutern:
Zunächst vielleicht erst einmal genauere Infos zu dem Aufbau der Dateien:
(nach folgendem Schema | Spalte A | Spalte B | usw.)

Quelldatei:
| Rank | Personalnr. | Anrede | Vorn. | Nachname | Str. | PLZ | Ort |

Und diese Datei (mit zwei Tabllenblättern) soll aktualisiert werden anhand der Rankliste der Quelldatei.
Das erste Tabellenblatt sieht so aus:

| neuer Rank | Rank Vormonat | Pers.-Nr. | Vorn. | Nachname |

Das zweite Tabellenblatt ist wie das erste sortiert und sieht so aus:

| Rank neu | Rank Vorm. | Vorn.| Nachname | Str. | PLZ | Ort | Notizen |

Das ist erst einmal der Aufbau. Und wie ich schon schrieb, musste ich bisher immer zuerst das erste Tabellenblatt sortieren und dann anschließend in dem zweiten Tabellenblatt selbiges tun. Das möchte ich gerne automatisieren.
Mein Problem ist es, dass ich mich nicht so mit Makros auskenne (eigentlich gar nicht, außer Aufnahme ;-()


Problem 1: Für den neuen Rank wird eine neue Spalte A eingefügt und die alte Spalte des Vormonats gelöscht (,sodass man immer nur zwei Spalten mit dem Rank hat).

Problem 2: In den beiden Blättern der Zieldatei müssten die Zeilen gleichzeitig verschoben werden, ansonsten wären die Informationen ja asynchron.

Problem 3: Es kann auch vorkommen, dass in der Quelldatei ganz neue Namen auftauchen und dafür alte aus der TOP100 wegfallen. Die müssten ebenfalls mit ihrem Rank eingepflegt werden. Die alten könnten auch einfach nur ans Tabellenende verschoben werden.

Ich hoffe, dass es diesmal eingänglicher war, falls nicht oder weitere Infos benötigt werden, einfach posten.

Vielen, vielen, vielen Dank schonmal

rapperzahn

Antwort 3 von rainberg vom 17.10.2020, 14:24 Options

Hallo rapperzahn,

ich glaube, auch wenn Du noch eine vierte Erläuterung schreibst, wird Dir keiner eine brauchbare Lösung geben können, weil man Dich so nicht versteht.

Warum lädst Du keine Beispieldatei hoch?

Gruß
Rainer

Antwort 4 von rapperzahn vom 19.10.2020, 16:47 Options

Moin Moin,

tschuldigung, natürlich. Ich glaube so wäre es natürlich am einfachsten. Hier also die beiden Dateien:

http://freenet-homepage.de/nyinter/support/support.zip

Schönen Sonntag noch- und auf jeden Fall vielen Dank, dass ihr euch diesem annehmt.

rapperzahn

Antwort 5 von nighty vom 19.10.2020, 17:59 Options

hi all :-)

der link geht bei mir nicht,seite nicht erreichbar heisst es :-(

gruss nighty

Antwort 6 von rapperzahn vom 19.10.2020, 18:03 Options

Moin Moin,

das tut mir Leid, aber bei mir funktioniert der Link. Falls das Problem echt weiterhin besteht, bitte nochmals kurz melden. Ansonsten kann ich es auch gerne per Mail schicken.

LG

rapperzahn

Antwort 7 von Saarbauer vom 19.10.2020, 19:18 Options

Hallo,

habe mir mal die Dateien angesehen und muss sagen die Zusammenhänge werden mir nicht klar, auch zusamen mit der hier gemachten Beschreibung.

Z.B. warum ist der unter Rank 2 angwegebene in deiner Zielliiste unter Rank 3 ? Woher kommen die Angaben in der Zielliste zu Rank 10 da diese in der Quelle nicht vorhanden sind?

Alles etwas konfus und nicht pausibel

Gruß

Helmut

Antwort 8 von raperzahn vom 20.10.2020, 09:15 Options

Moin Moin,

darin steht ja mein Problem. Die beiden Listen sollen ja synchronisiert werden, d.h. die Quelldatei ist die aktuelle und die Zieldatei soll auf den selben Stand gebracht werden.
z.B. die Datei wird jeden Monat aktualisiert, d.h. die Quelldatei wäre vom Oktober, die Zieldatei jedoch noch auf dem Stand des Septembers.

Und daher kommen auch die ungleichen Platzierungen, weil z.B. der "Bernd Beethoven" sich von Platz 3 (=Stand in Zieldatei) auf Platz 2 (=Stand Quelldatei) verbessert hat.

Die Person auf Platz 10 in der Zieldatei hingegen (die ja die ältere ist), ist im neuem Monat aus der Liste rausgerutscht.

Ich hoffe, jetzt ist es klar. Um es auf einen Punkt zu bringen: Die Quelldatei ist auf dem neueren Stand und hat daher Vorrang. Nach ihren Platzierungen soll die Zieldatei sortiert werden!

Vielen Dank

rapperzahn

Antwort 9 von Saarbauer vom 20.10.2020, 21:35 Options

Hallo,

habe zur Zeit keine passende Lösung, da mein Versuch mit Sverweis nicht zum passenden Ergebnis führte, werde mir aber mal ein paar Gedanken machen.

Gruß

Helmut

Antwort 10 von rapperzahn vom 22.10.2020, 20:20 Options

Moin Moin,

hey vielen Dank auf jeden Fall für die Mühe und die investierte Zeit. Da bin ich mal auf die Lösung (ich hoffe, es gibt eine) gespannt!

Vielen Dank nochmals

rapperzahn

Antwort 11 von Saarbauer vom 23.10.2020, 14:12 Options

Hallo,

habe es bis jetzt zu keiner Brauchbaren Lösung gebracht, hast du es mal mit Makro aufzeichnen versucht?

Gruß

Helmut

Antwort 12 von Saarbauer vom 24.10.2020, 08:06 Options

Hallo,

versuch es mal mit dem Makro

Zitat:
Sub Makro1()
Windows("quelle.xls").Activate
Rows("1:11").Select
Selection.Copy
Windows("ziel.xls").Activate
Range("A15").Select
ActiveSheet.Paste
Range("B15:B25").Select
Application.CutCopyMode = False
Selection.Insert Shift:=xlToRight
Range("D15:E25").Select
Selection.Delete Shift:=xlToLeft
Range("F15:L25").Select
Selection.Delete Shift:=xlToLeft
Range("G15:G25").Select
Selection.Insert Shift:=xlToRight
Range("I15:K25").Select
Selection.Delete Shift:=xlToLeft
Range("I19").Select
For i = 16 To 25
For j = 2 To 11
If Range("C" & i).Value = Range("C" & j).Value Then Range("B" & i).Value = Range("A" & j)
Next j
Next i
Range("A1").Select
Range("A1").Cut Destination:=Range("B1")
Rows("2:15").Select
Selection.Delete Shift:=xlUp
Range("A1").Select
ActiveCell.FormulaR1C1 = "Rank"
Range("A1").Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
Selection.Borders(xlEdgeLeft).LineStyle = xlNone
Selection.Borders(xlEdgeTop).LineStyle = xlNone
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
Selection.Borders(xlEdgeRight).LineStyle = xlNone
End Sub


Die Farbige Hinterlegung und die Angabe zu "Age" fehlen, da ich deren zustadekommen nicht nachvollziehen kann

Gruß

Helmut

Antwort 13 von rapperzahn vom 26.10.2020, 19:11 Options

Moin Moin,

vielen Dank. Das klappt ja super.

Ich habe da allerdings noch eine Frage, und zwar: Ist das bei mir ein Aussetzer oder verschiebt der die Zeilen im zweiten Tabellenblatt der Zieldatei nicht mit?

Zudem möchte ich noch ein bissl Licht in den Schatten bringen. Wie kommt "Age" zustande:
Age ist einfach das Alter. Das Geburtsdatum steht ja in der Quelldatei und in der Spalte "Age" ist dann einfach das Alter ausgerechnet [Allerdings wurde dieses manuell ausgerechnet, da mein Vorgänger da keine Formel verwendet hat]

Zum zweiten Punkt:
Wie kommen die Farben zustande:
In der Quelldatei gibt es ja eine Spalte mit dem Titel "Status" und die Farben in der Zieldatei spiegeln nur den Status wieder, d.h.:
Grün= Profi
Gelb= Powerseller
Blau= Seller

Das sind die Grundfarben, desweiteren waren ja bei zwei Personen die Platzierungen lila eingefärbt: Das bedeutet einfach nur, das diese Personen zum ersten Mal in der Liste auftauchen- mehr nicht. Diese Felder beinhaltet ja auch die Notiz "NEWTOP SEP08". Also unterstützt die Farbe dieses nur noch einmal [ebenfalls nicht meine Idee]

Dann gibt es noch den internen Status, welcher in der Spalte "OK?" zu finden ist. Dabei gibt es für uns was besonderes zu beachten, wenn der Status einer Person auf "N" steht, daher sind diese in der Zeildatei rot eingefärbt!

Ich konnte, ich konnte das aufklären.
Und freue mich auf die Aufklärung zur Sortierung des zweiten Tabellenblatts.

Großes Dankeschön auf jeden Fall mal.

Schönen Sonntagabend noch

rapperzahn

Antwort 14 von Saarbauer vom 26.10.2020, 19:41 Options

Hallo,

zur übernahme in das Blatt "Details" hatte ich noch nichts gemacht, da erstmal zu klären war ob das überhaupt so geht / deinen Vorstellungen entspricht.

DSesweiteren wäre zu klären welche Daten aus Dem Blat erhalten werden, da nacht alle Angaben in dem Blatt woanders zu finden sind.

Ware mit einem ähnlichen Makro wie oben zu machen

Gruß

Helmut

Antwort 15 von rapperzahn vom 27.10.2020, 21:09 Options

Moin Moin,

okay. Ich habe mich jetzt mal mit dem Makro intensiv auseinander gesetzt.
Sehe ich das richtig, dass du die Daten aus der Quelle in die Zieldatei reinkopierst und da dann noch den alten Rank mit dem Datensatz verknüpfst? Schade ist nur, dass halt die Farben nicht erhalten bleiben. Das gleiche gilt für die Notizen. Beides wäre schon cool, wenn es erhalten bleiben würde.

Bei dem Tabellenblatt "Details" ist nämlich wieder dasselbe. Dort stehen ja Daten, die sich über die Zeit angesammelt haben und somit nirgends stehen- außer halt in dieser einen Liste.
_________________

Ich habe dann mal dein Makro als Ideengrundlagen genommen und meine Vorstellungen miteingebracht. Herausgekommen ist folgendes:
Sheets("MASTER").Select
    Columns("A:A").Select
    Selection.Insert Shift:=xlToRight
    Range("A1").Select
    ActiveCell.FormulaR1C1 = "Rank" & Chr(10) & "NEU"
    With ActiveCell.Characters(Start:=1, Length:=8).Font
        .Name = "Arial"
        .FontStyle = "Standard"
        .Size = 10
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .Underline = xlUnderlineStyleNone
        .ColorIndex = xlAutomatic
    End With
    Cells.Select
    Range("A2").Activate
    Sheets("DETAILS").Select
    Columns("A:A").Select
    Selection.Insert Shift:=xlToRight
    Columns("D:D").Select
    Selection.Delete Shift:=xlToLeft
    Sheets("MASTER").Select
    Columns("C:C").Select
    Selection.Delete Shift:=xlToLeft
     Range("A2").Select
    Sheets("DETAILS").Select
    Range("A1").Select
    ActiveCell.FormulaR1C1 = "Rank" & Chr(10) & "NEU"
    With ActiveCell.Characters(Start:=1, Length:=8).Font
        .Name = "Arial"
        .FontStyle = "Standard"
        .Size = 10
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .Underline = xlUnderlineStyleNone
        .ColorIndex = xlAutomatic
    End With


' ETWA HIER SOLLTE DER TEIL DANN VON DEM ZWEITEM CODE REIN



    Range("A2").Select
    ActiveCell.FormulaR1C1 = "=MATCH(MASTER!RC[2],[quelle.xls]Sheet1!C2,0)"
    ActiveCell.FormulaR1C1 = "=MATCH(MASTER!RC[2],[quelle.xls]Sheet1!C2,0)-1"
    Range("A2").Select
    Selection.AutoFill Destination:=Range("A2:A11"), Type:=xlFillDefault
    Range("A2:A11").Select
    Range("A1").Select
    Sheets("MASTER").Select
    ActiveCell.FormulaR1C1 = "=MATCH(RC[2],[quelle.xls]Sheet1!C2,0)"
    ActiveCell.FormulaR1C1 = "=MATCH(RC[2],[quelle.xls]Sheet1!C2,0)-1"
    Range("A2").Select
    Selection.AutoFill Destination:=Range("A2:A11"), Type:=xlFillDefault
    Range("A2:A11").Select
    Range("A1").Select
    Sheets("DETAILS").Select
    Range("A1:N11").Select
    Selection.Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
    Range("A1").Select
    Sheets("MASTER").Select
    Range("A1:H11").Select
    Selection.Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
    Range("A1").Select
    Sheets("MASTER").Select
   
    Sheets(1).Select
    zahl = 1
    Do While zahl < 12
    zahl = zahl + 1
    If Worksheets(1).Cells(zahl, 2).Interior.ColorIndex = 43 Then
      Worksheets(1).Cells(zahl, 1).Interior.ColorIndex = 43
    End If
    If Worksheets(1).Cells(zahl, 2).Interior.ColorIndex = 6 Then
      Worksheets(1).Cells(zahl, 1).Interior.ColorIndex = 6
    End If
    If Worksheets(1).Cells(zahl, 2).Interior.ColorIndex = 34 Then
      Worksheets(1).Cells(zahl, 1).Interior.ColorIndex = 34
    End If
    If Worksheets(1).Cells(zahl, 2).Interior.ColorIndex = 54 Then
      If Worksheets(1).Cells(zahl, 3).Interior.ColorIndex = 43 Then
      Worksheets(1).Cells(zahl, 1).Interior.ColorIndex = 43
    End If
    If Worksheets(1).Cells(zahl, 3).Interior.ColorIndex = 6 Then
      Worksheets(1).Cells(zahl, 1).Interior.ColorIndex = 6
    End If
    If Worksheets(1).Cells(zahl, 3).Interior.ColorIndex = 34 Then
      Worksheets(1).Cells(zahl, 1).Interior.ColorIndex = 34
    End If
    End If
  Loop
  
   Sheets(2).Select
    zahl = 1
    Do While zahl < 12
    zahl = zahl + 1
    If Worksheets(2).Cells(zahl, 2).Interior.ColorIndex = 43 Then
      Worksheets(2).Cells(zahl, 1).Interior.ColorIndex = 43
    End If
    If Worksheets(2).Cells(zahl, 2).Interior.ColorIndex = 6 Then
      Worksheets(2).Cells(zahl, 1).Interior.ColorIndex = 6
    End If
    If Worksheets(2).Cells(zahl, 2).Interior.ColorIndex = 34 Then
      Worksheets(2).Cells(zahl, 1).Interior.ColorIndex = 34
    End If
    If Worksheets(2).Cells(zahl, 2).Interior.ColorIndex = 54 Then
      If Worksheets(2).Cells(zahl, 3).Interior.ColorIndex = 43 Then
      Worksheets(2).Cells(zahl, 1).Interior.ColorIndex = 43
    End If
    If Worksheets(2).Cells(zahl, 3).Interior.ColorIndex = 6 Then
      Worksheets(2).Cells(zahl, 1).Interior.ColorIndex = 6
    End If
    If Worksheets(2).Cells(zahl, 3).Interior.ColorIndex = 34 Then
      Worksheets(2).Cells(zahl, 1).Interior.ColorIndex = 34
    End If
    End If
  Loop
   Sheets(1).Select
  Range("A1:A11").Select
    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    With Selection.Borders(xlEdgeLeft)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlEdgeTop)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlEdgeBottom)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlEdgeRight)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
   
    With Selection.Borders(xlInsideHorizontal)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    Range("A1").Select
    Sheets("DETAILS").Select
    Range("A1:A11").Select
    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    With Selection.Borders(xlEdgeLeft)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlEdgeTop)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlEdgeBottom)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlEdgeRight)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
   
    With Selection.Borders(xlInsideHorizontal)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    Range("A1").Select
    Sheets("MASTER").Select


Der Vorteil ist halt, das die vorhandenen Farben erhalten bleiben und auch die Notizen.
Jetzt müssen nur noch die neuen Datensätze eingereiht werden. Wie mache ich das? Da bräuchte ich wieder deine/eure Hilfe.

Und zwar habe ich mal so eine Art Ideenmakro geschrieben, sprich ich hoffe, ihr könnt meine Idee erkennen und meine Fehler rausbauen. Ich habe nämlich keine Ahnung wie man das macht, also hier der (nicht funktionsfähige) Code:

Count = 1
Do While zahl < 12
    Count = Count + 1
    cound = 2
   
    Do While cound < 12
     If Windows("quelle.xls").cell(Count, 2) <> Windows("ziel.xls").cell(cound, 2) Then
       If cound = 11 Then
        Sheets("DETAILS").Select
    Rows("13:13").Select
    Selection.Insert Shift:=xlDown
    Sheets("MASTER").Select
    Rows("13:13").Select
    Selection.Insert Shift:=xlDown
        Else
       cound = cound + 1
        End If
       
        Else
       
       
        'KOPIEREN DER ZELLEN IN DIE PASSENDEN NEUEN ZELLEN VON QUELLE IN ZIEL- DATEI (MASTER+ DETAILS)'  DIESER PART MÜSSTE NOCH UMGESETZT WERDEN! ABER DA HABE ICH KEINE AHNUNG!
      End If
 
       
       Loop
      
Loop

Dieser Code soll dann oben in den Code eingesetzt werden (die Stelle habe ich ja markiert.



Vielen Dank nochmals und Danke auch für die Geduld ;-)

rapperzahn

Antwort 16 von Saarbauer vom 30.10.2020, 15:26 Options

Hallo,

mal für die Tabelle Ziel / Master ein Makro

Sub Makro1()
Windows("quelle.xls").Activate
Rows("1:11").Select
Selection.Copy
Windows("ziel.xls").Activate
Range("A15").Select
ActiveSheet.Paste
    Range("O16").Select
    Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, Formula1:="=""N"""
    Selection.FormatConditions(1).Interior.ColorIndex = 3
    Range("O16").Select
    Selection.Copy
    Range("O16:O25").Select
    Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
    Application.CutCopyMode = False
For i = 16 To 25
    If Range("C" & i).Value = "Powerseller" Then
        Range("A" & i & ":R" & i).Select
        Selection.Interior.ColorIndex = 43
    Else
        If Range("C" & i).Value = "Profi" Then
            Range("A" & i & ":R" & i).Select
            Selection.Interior.ColorIndex = 6
        Else
            If Range("C" & i).Value = "Seller" Then
                Range("A" & i & ":R" & i).Select
                Selection.Interior.ColorIndex = 34
            End If
        End If
    End If
Next i
Range("B15:B25").Select
Application.CutCopyMode = False
Selection.Insert Shift:=xlToRight
Range("D15:E25").Select
Selection.Delete Shift:=xlToLeft
Range("F15:L25").Select
Selection.Delete Shift:=xlToLeft
Range("G15:G25").Select
Selection.Insert Shift:=xlToRight
For i = 16 To 25
    Range("G" & i).Value = Date - Range("J" & i).Value
Next i
Range("G16:G25").Select
Selection.NumberFormat = "yy"
Range("I15:K25").Select
Selection.Delete Shift:=xlToLeft
Range("I19").Select
For i = 16 To 25
    For j = 2 To 11
        If Range("C" & i).Value = Range("C" & j).Value Then Range("B" & i).Value = Range("A" & j)
    Next j
Next i
Range("A1").Select
Range("A1").Cut Destination:=Range("B1")
Rows("2:15").Select
Selection.Delete Shift:=xlUp
Range("A1").Select
ActiveCell.FormulaR1C1 = "Rank"
Range("A1").Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
Selection.Borders(xlEdgeLeft).LineStyle = xlNone
Selection.Borders(xlEdgeTop).LineStyle = xlNone
With Selection.Borders(xlEdgeBottom)
    .LineStyle = xlContinuous
    .Weight = xlThin
    .ColorIndex = xlAutomatic
End With
Selection.Borders(xlEdgeRight).LineStyle = xlNone
End Sub


Rot habe ich mit eingebaut, lila dazu fehlen hier einfach angaben

Für die Tabelle Details fehlen auch noch Angaben, da mir nicht klar ist wo die Daten, die nicht aus der Quelle sind herkommen

Gruß

Helmut

Antwort 17 von rapperzahn vom 30.10.2020, 21:18 Options

Moin Moin,

vielen Dank für eure Mühe! Ich danke besoners dir, Saarbauer. Ich habe praktisch zeitgleich auch mein Makro fertig geschrieben.
Das obige meinige Makro habe ich dabei weiterentwickelt. Wenn jemand Interesse an meiner Lösung hat, einfach posten. Meine Lösung löscht dabei keine vorhandenen Informationen in den hinteren Spalten der "DETAILS".

NOCHMALS VIELEN DANK SAARBAUER FÜR DIE UNTERSTÜTZUNG!

Viele Grüße

rapperzahn

Antwort 18 von Saarbauer vom 31.10.2020, 07:44 Options

Hallo,

nur ein kleiner Hinweis:

Ich weiss zwar nicht wie du die Makros entwicklst, ich aber zeichne meist mir ein Makro auf und ergänze es dann mit den nicht aufzeichenbaren Funktionen.

Ausserdem recht herzlichen Dank für die Rückmeldung, kommt leider zu selten vor. Nur über diesen Weg erhält der Helfer Informationen ob seine Idee brauchbar war.

Gruß und schönes Wochenende

Helmut

Ähnliche Themen

Verschieben von Zeilen in Blätter mit Namensprinzip
XpressMe  30.11.2007 - 57 Hits - 3 Antworten

autom.Verschieben von Zeilen in ein anderes Tabellenblatt
Dude147  15.01.2008 - 23 Hits - 2 Antworten

VBA-Makro in Excel nur in gefilterten Zeilen ausführen
andreas_3  15.06.2008 - 85 Hits - 1 Antwort

VBA-Makro in Excel nur in gefilterten Zeilen ausführen
andreas_3  18.06.2008 - 60 Hits - 7 Antworten

Excel Zeilen verschieben
tfrommer  12.06.2008 - 65 Hits - 3 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Mon Jan 26 01:23:17 2026