Anzeige
Archiv - Navigation
640to644
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
640to644
640to644
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Brauche dringend Hilfe bei einem Makro

Brauche dringend Hilfe bei einem Makro
27.07.2005 14:06:31
Matthias
Hallo Zusammen,
folgende Situation:
ich habe einen Makro-Teil der in der Spalte A meiner Tabelle
nach der Zahl "1" sucht. Wenn es eine gefunden hat, löscht es diese.
Ich möchte nun gerne, dass das Makro befor es den Eintrag löscht, die gesamte Zeile kopiert und in ein neues Tabellenblatt einfügt.
Hier mein VBA-Code bis jetzt:
_________________________________________________________
Public

Sub Finden()
Range("A1").Select
While IsEmpty(ActiveCell) = False
If ActiveCell.Value = 1 Then
Rows(ActiveCell.Row()).Select
ActiveCell.Offset(0, 9).Select
Selection.Delete
Else
ActiveCell.Offset(1, 0).Select
End If
Wend
End Sub

_________________________________________________________
Schon mal vielen Dank im vorraus.
Matthias

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Brauche dringend Hilfe bei einem Makro
27.07.2005 14:38:24
Daniel
Hi Matthias,
Ich wuerde das so machen (Warnung, habe Code nicht getestet, also mach zuerst eine Sicherheitskopie von deiner Datei)

Sub Finden()
Dim r as range
with Worksheets("Name deiner Tabelle")
for each r in .range("A1",.range("A1").end(xldown))
If r.Value = 1 Then
.range(.Cells(r.row,1),.cells(r.row,256)).copy Destination:=Worksheets("Ziel Tabelle").range("A65536").end(xlup).offset(1,0)
r.clearcontents
End If
next r
end with
End Sub

AW: Brauche dringend Hilfe bei einem Makro
27.07.2005 14:58:58
Matthias
Hallo,
erstmal Vielen Dank für deine Schnelle Antwort.
Dein Makro funktioniert hervorragend, ich habe nur noch eine Frage:
Was muss ich verändern wenn ich nach mehreren Sachen suchen will. Vieleicht "Or" ?
Vielen Dank im Vorraus
Matthias
Anzeige
AW: Brauche dringend Hilfe bei einem Makro
27.07.2005 15:17:23
Daniel
Hallo Matthias,
freut mich dass es funktioniert hat. Du kannst zusaetzliche Bedingungen (OR, AND) beim IF-statement hinzufuegen.
Gruesse,
Daniel
AW: Brauche dringend Hilfe bei einem Makro
27.07.2005 15:34:04
Matthias
Hallo Daniel,
ich habe es ausprobiert aber es kommt immer ein Typ 13 Fehler "Typen unverträglich"
Ich habe dir nochmal unten den Code angefügt. Wo liegt den das problem?
________________________________________________________________________________________
Public

Sub Finden()
Dim r As Range
With Worksheets("Unsortiert")
For Each r In .Range("B1", .Range("B1").End(xlDown))
If r.Value = "Test" And "Test" Then
.Range(.Cells(r.Row, 1), .Cells(r.Row, 100)).Copy Destination:=Worksheets("Sortiert").Range("B65536").End(xlUp).Offset(1, 0)
r.ClearContents
End If
Next r
End With
End Sub

________________________________________________________________________________________
Anzeige
AW: Brauche dringend Hilfe bei einem Makro
27.07.2005 16:15:28
Daniel
Du musst in dem IF Statement die ganze Bedingung angeben also anstatt:
If r.Value = "Test" And "Test" Then
sollte
If r.value = "Test" And r.value = "Test1" then
Gruesse,
Daniel
r scheint ein Array neuester Bauart zu sein*g
27.07.2005 16:18:16
Reinhard
Gruß
Reinhard
r scheint ein Array neuester Bauart zu sein*g
27.07.2005 16:19:04
Reinhard
Gruß
Reinhard
AW: Brauche dringend Hilfe bei einem Makro
27.07.2005 16:36:12
Matthias
OK, erstaml vielen Dank Daniel,
jetzt gibt es nur noch ein problem:
alle gefundenen Einträge (es gibt mehrere Test1 und Test2 Zeilen) werden
auf die gleiche Zeile im Blatt "Sortiert kopiert. So ist da nacher immer nur
der zuletzt gefundene Eintrag.
Was muss man da noch ändern?
________________________________________________________________________________________
Public

Sub Finden()
Dim r As Range
With Worksheets("Unsortiert")
For Each r In .Range("B1", .Range("B1").End(xlDown))
If r.Value = "Test1" Or r.Value = "Test2" Then
.Range(.Cells(r.Row, 1), .Cells(r.Row, 128)).Copy Destination:=Worksheets("Sortiert").Range("B65536").End(xlUp).Offset(1, 0)
r.ClearContents
End If
Next r
End With
End Sub

________________________________________________________________________________________
MfG Matthias Pöschl
Anzeige
AW: Brauche dringend Hilfe bei einem Makro
27.07.2005 16:54:20
Daniel
Hey,
Dass liegt wahrscheinlich an deiner Tabelle. Ich sehe du hast den Code auf Spalte B geaendert. Ist Spalte B zufaellig leer?
Der Offset Teil von
Worksheets("Sortiert").Range("B65536").End(xlUp).Offset(1, 0)
sollte dieses Problem naemlich vermeiden, funkt aber nur wenn du eine Spalte waehlst die in jeder Zeile einen Eintrag hat. Verstehst du was ich meine? Sagen wir du hast in der "Unsortiert" Tabelle 1000 Eintrage in Spalte A, keine in Spalte B und wieder 1000 in Spalte C. Dann funkt der Code nur wenn du Range("A65536") oder Range("C65536") beneutzt.
Probiers mal,
Daniel
Anzeige
AW: Brauche dringend Hilfe bei einem Makro
27.07.2005 17:08:41
Matthias
HAllo Daniel,
ich habe schon überall einträge in Spalte B ohne Lücke zb:
Test1
Test1
Test1
Test1
Test2
Test2
Test2
Test2

aber nach dem Makro kommt in Tabelle "Sortiert" nur
Test2
raus. Sonst Nichts
MfG Matthias Pöschl
AW: Brauche dringend Hilfe bei einem Makro
27.07.2005 17:19:02
Daniel
Entschuldigung, habe mich nicht deutlich ausgedrueckt. Da du in Spalte B die Daten kopierst, muessen in Spalte A in der Tabelle "Nicht Sortiert" Daten vorhanden sein. Falls in Spalte A keine Daten vorhanden sind aendere den Code so:
.range(.cells(r.row,2),.cells(r.row,128)).copy
AW: Brauche dringend Hilfe bei einem Makro
27.07.2005 17:24:17
Matthias
Jupiii! Es Funktioniert! Tausend Dank!
Ich bin etw. begriffsstutzig, Sorry *schäm*
Du bist Super!
MfG Matthias Pöschl
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige