Spalte kopieren, von unten nach oben
#1
Hallo zusammen
Ich habe ein kleines (für mich ein grosses) Problem

Ich kopiere von Tabellenblatt "Spieler" über einen Button Spalte A und Spalte B (Wenn die Bedingung in C passt, z.B.: 401) nach Tabellenblatt1. Das klappt ja wunderbar

Ich will es aber Irgendwie schaffen, dass das von unten nach Oben kopiert bzw von unten nach oben eingetragen wird. Die Bereiche, wo das hinkopiert wird, ist immer der gleiche Bereich.
Vielleicht hat wer eine Idee.  Zur Info. Ich habe das mal auf Fussballspieler umgemünzt, da das wirkliche Problem zu kompliziert wäre (zumindest für betriebsfremde)

Danke an alle
LG
Michael


Angehängte Dateien
.xlsm   Kopieren Umgekehrt.xlsm (Größe: 30,76 KB / Downloads: 5)
Antworten Top
#2
Hey,

mach aus i = i + 1  ->  i = i - 1 und fang am Ende an.

Gruß Elex
[-] Folgende(r) 1 Nutzer sagt Danke an Elex für diesen Beitrag:
  • Eizi100
Antworten Top
#3
Danke

Es klappt. In meiner geistigen Umnachtung habe ich zuerst übersehen, dass ich die Zeilennummer natürlich auch ändern muss.
i = 3 ' Zeilennummer   Ab 4 Fundstellen kommt natürlich der Fehler

Ich habs dann auf
i = 15 geändert und schon gings

Ich sage Besten Dank
Mein Tag ist gerettet

LG
Michael
Antworten Top
#4
Hallo

ich habe mich NIE für Fussball interessiert, aber die ungewöhnliche Aufgabe Rückwärts zu kopieren hat mich gereizt eine lösung zu finden!
Dafür benötigt ein erfahrener Programmierer keine zwei getrennte Makros, das kann man für Bayern und Schalke in einem Rutsch machen! 
Und ich bevorzuge den normalen CommandButton, keine AktiveXSteuerelemente.  Dem kann man das Makro im Modul1 direkt zuweisen.

mfg Gast 123

Soory, zu schnell gesendet.   Hier die beabeitete Datei.


Angehängte Dateien
.xlsm   Kopieren Umgekehrt.xlsm (Größe: 24,34 KB / Downloads: 3)
Antworten Top
#5
Hi,

ginge auch in einem Makro:

Code:
Private Sub Rueckwaerts()
Dim lastRow As Long
Dim rngBer As Range
Dim lCount As Long
Dim lBayern As Long
Dim lSchalke As Long
lBayern = 2
lSchalke = 16
lastRow = Cells(Rows.Count, 1).End(xlUp).Row

With Sheets("Tabelle1")
    Set rngBer = .Range("b2:C26")
    rngBer.ClearContents
   
    For lCount = lastRow To 1 Step -1
        If Cells(lCount, 3) = 401 Then
            .Cells(lBayern, 2) = Cells(lCount, 2)
            .Cells(lBayern, 3) = Cells(lCount, 1)
            lBayern = lBayern + 1
        ElseIf Cells(lCount, 3) = 402 Then
            .Cells(lSchalke, 2) = Cells(lCount, 2)
            .Cells(lSchalke, 3) = Cells(lCount, 1)
            lSchalke = lSchalke + 1
        End If
    Next
   
End With

End Sub


Gerade die Version von Elex gesehen, ist nicht so toll, wenn die Einträge in Tabelle1 unten beginnen!
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Antworten Top
#6
Moin!
Mein übliches "außer Konkurrenz".
In einem aktuellen Excel reicht eine einzige Formel.
(ohne VBA, ohne "ziehen")
ABC
1Liste1Liste2
2PJ
3BD
4UH
5EC
6XI
7SN
8LV
9VL
10NS
11IX
12CE
13HU
14DB
15JP

ZelleFormel
C2=LET(b;A2:A15;z;ZEILEN(b);INDEX(b;SEQUENZ(z;;z;-1)))

Gruß Ralf

Edit:
Geht sogar noch einfacher:
AD
1Liste1Liste2
2PH
3BC
4UI
5EN
6XV
7SL
8LS
9VX
10NE
11IU
12CB
13HP

ZelleFormel
D2=SORTIERENNACH(A2:A13;SEQUENZ(12;;12;-1))
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top


Gehe zu:


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