Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
404to408
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
404to408
404to408
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Wenn X in SpalteA

Wenn X in SpalteA
DieterG
Hallo Excelprofis,
brauche schon wieder einmal Euere Hilfe:
1.
Mit dem Makro in Zelle A9 wird SpalteA nach X durchsucht und wenn X gefunden wurde, der Wert rechts (SpalteB) neben X in Spalte F kopiert.
Jetzt soll noch der Wert in SpalteC neben X in SpalteG und und der Wert aus SpalteD neben X nach SpalteH kopiert werden!
2.
Wie können die Zellen F2, G2, H2 direkt angesprochen werden und nicht über Range("F50").SelectSelection.End(xlUp).SelectActiveCell.Offset(1, 0).Range("A1").Select ?
Vielen Dank für Euere Mühe
Gruss Dieter
Tabelle1
 ABCDEFGH
1 Nr.NamePersonal-Nr Nr.NamePersonal-Nr
2x1A123 1  
3 2B124 3  
4x3C125 5  
5 4D126 7  
6x5E127    
7 6F128    
8x7G129    
9    Sub X_Suchen()
Dim i As Range
For Each i In Range("A1:A10")
If (i.Value) = ("x") Then
i.Select
ActiveCell.Offset(0, 1).Range("A1").Activate
Selection.Copy
Range("F50").Select
Selection.End(xlUp).Select
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveSheet.Paste
Application.CutCopyMode = False
End If
Next i
Range("A1").Select
End Sub
   

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Wenn X in SpalteA
25.03.2004 20:45:30
Christoph
Hi Dieter,
ich seh vor lauter Select den Code nicht mehr....
auf Select und Activate kann in 99% aller Fälle verzichtet werden.
was willst du eigentlich machen?
Für jedes X in Spalte A die Werte aus den Spalten B bis D nach F bis H kopieren.
Nur ...was hat es mit der Zelle F50 auf sich?
erklär mir das noch mal...
Gruß
Christoph
AW: Wenn X in SpalteA
DieterG
Hallo Christoph,
Für jedes X in Spalte A die Werte aus den Spalten B bis D nach F bis H kopieren.
Genau das soll passieren!
Zu Zelle F50:
F50 ist eine beliebige Zelle könnte auch F500 sein, von hier aus habe ich versucht mit Selection.End(xlUp).Select Zelle F2 anzusprechen.
In F2 soll mit dem Einfügen begonnen werden!
Anzeige
AW: Wenn X in SpalteA
25.03.2004 21:03:39
Christoph
Hi Dieter,
probiers mal damit.
Es wird die letzte Zeile der Spalte B, die einen Eintrag hat als Grenze gesetzt.
Gruß
Christoph
('ne Rückmeldung wäre nett)
Sub KopierWennX() Dim lRow As Integer, i As Integer lRow = Cells(Rows.Count, 2).End(xlUp).Row For i = 2 To lRow If Cells(i, 1).Value = "x" Then Range(Cells(i, 2), Cells(i, 4)).Copy Cells(i, 6) End If Next i Application.CutCopyMode = False End Sub
AW: Wenn X in SpalteA
DieterG
Hallo Christoph,
das bringt mich schon ein großes Stück weiter. Jetzt habe ich nur noch das Problem mit den leeren Zeilen zwischen den eingefügten Werten!
Hast Du vielleicht noch eine Idee, wie man das kopierte ohne Leerzeile einfügen könnte?
Ich meine damit:
Der 1.Wert aus SpalteB soll in Zelle F2 der 2.Wert aus SpalteB in Zelle F3
Der 1.Wert aus SpalteC in Zelle G2 der 2.Wert aus SpalteC in Zelle G3 usw. eingefügt werden.
Gruß Dieter
Anzeige
AW: Wenn X in SpalteA
Christoph
Hi Dieter,
...bei dem von dir angegebenen Level (VBA gut) könnte das nicht schwierig sein.
Ermittle die letzte Zeile mit Eintrag in Spalte F und kopier den "Kram" in die nächste (nämlich freie) Zeile der Spalte F.
Gruß
Christoph
ps: wenn du deine nächste Frage an meine letzte Antwort hängst, brauch ich nicht in zwei Fenstern nachzuschauen, was zuvor geschrieben wurde)
Option Explicit

Sub KopierWennX()
Dim lRow As Integer, lRow2 As Integer, i As Integer
lRow = Cells(Rows.Count, 2).End(xlUp).Row
For i = 2 To lRow
If Cells(i, 1).Value = "x" Then
lRow2 = Cells(Rows.Count, 6).End(xlUp).Row
Range(Cells(i, 2), Cells(i, 4)).Copy Cells(lRow2 + 1, 6)
End If
Next i
Application.CutCopyMode = False
End Sub

Anzeige
AW: Wenn X in SpalteA
DieterG
Hallo Christoph,
das mit dem Level ist so eine Sache!
Excel gut VBA nein trifft nicht zu.
Eigentlich müsste ich schreiben:
Excel gut VBA-Kenntnisse
aber diese Kombination gibt es leider nicht.
Excel gut VBA nein trifft auch nicht zu.
Danke nochmal
Gruß Dieter
Danke für die Rückmeldung
26.03.2004 00:50:31
Christoph
Hi Dieter,
ich kenn das Problem mit den möglichen Levels...
Oft bin ich, wenn ich mich als "VBA gut" einstufe, mit den Antworten auch überfordert.
Ich hoffe jedoch, du kannst nachvollziehen, was der Code bewirkt.
mit "lRow = Cells(Rows.Count, 2).End(xlUp).Row" ermittelst du von der Zeile 65536 nach oben laufend die erste Zelle mit einem Eintrag (in diesem Fall in der Spalte B)
und jetzt läuftst du von Zeile 2 bis zu jener Zeile "lRow" von oben nach unten und kopierst immer die entsprechenden Ranges von... nach..., wenn in Spalte A ein "x" steht.
Und wie du siehst geht das ganz ohne Select oder Activate
"Quelle".Copy "Ziel"
Viele Grüße
Christoph
Anzeige
AW: Wenn X in SpalteA - ohne VBA
FP
Hallo Dieter,
So geht das ohne VBA:
 ABCDEFGH
1 1A123 2b124
2x2b124 4D126
3 3c125 5e127
4x4D126    
5x5e127    
Formeln der Tabelle
F1 : =VERGLEICH("x";$A:$A;-1)
G1 : =SVERWEIS($F1;$B:$D;2;0)
H1 : =SVERWEIS($F1;$B:$D;3;0)
F2 : =VERGLEICH("x";INDIREKT("A"&F1+1&":A"&VERGLEICH("";$A:$A;-1));0)+F1
G2 : =SVERWEIS($F2;$B:$D;2;0)
H2 : =SVERWEIS($F2;$B:$D;3;0)
F3 : =VERGLEICH("x";INDIREKT("A"&F2+1&":A"&VERGLEICH("";$A:$A;-1));0)+F2
G3 : =SVERWEIS($F3;$B:$D;2;0)
H3 : =SVERWEIS($F3;$B:$D;3;0)
Servus aus dem Salzkammergut Franz
Anzeige

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige