Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
772to776
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
772to776
772to776
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Zeichen suchen zeile einfügen und kopieren

Zeichen suchen zeile einfügen und kopieren
22.06.2006 14:05:56
Bengel
Hallösche
Ich habe folgendendes Tabellenblatt in kurzform
123S1
233B4
22S3
12K5
234F5
33K9
33E6
1K1
55F6
44F5.1
33K9
55H7
sodele
nun will ich folgendes erreichen
in meiner Tabelle (Spalte A) suche ich nach dem Zeichen K
wird die Zelle die ein K beinhaltet gefunden wird eine Leerzeile eingefügt und die Zelle mit dem gefundenen K nun in diese Leer Zeile darunter kopiert.
als nächstes suche ich ein F in meiner Spalte. Wird eine Zelle mit F gefunden sollte der Inhalt der gefunden Zelle rechts daneben kopiert werden.
Ergebnis sollte so aussehen:
123S1
233B4
22S3
12K5
12K5
234F5 234F5
33K9
33K9
33E6
1K1
1K1
55F6 55F6
44F5.1 44F5.1
33K9
33K9
55H7
Sodele ich hoffe so ist es verständlich was ich erreichen will
Das mit der neuen Zeile unter dem gefunden K habe ich hinbekommen aber ich weiss einfach nicht wie ich da noch ein Copy Befehl mit einbauen kann. Mir hats die gefunden K`s über die komplette Tabellenbreite kopiert. :-(
Gruß und Dankeschön
Bengel

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeichen suchen zeile einfügen und kopieren
22.06.2006 14:25:41
Kasimir
Hi Bengel,
so sollte es funktionieren. Kopiere den Code in ein Modul.
Option Explicit
Sub Auswertung()
Dim i As Long, K As Variant, F As Variant
For i = Range("A65536").End(xlUp).Row To 1 Step -1
    K = InStr(Cells(i, 1), "K")
    F = InStr(Cells(i, 1), "F")
    If K > 1 Then
        Rows(i + 1).Insert Shift:=xlDown
        Cells(i + 1, 1) = Cells(i, 1)
    End If
    If F > 1 Then
        Cells(i, 2) = Cells(i, 1)
    End If
Next
End Sub
Ich hoffe, Du hast das so gemeint.
Gruß, Kasimir
Anzeige
AW: Zeichen suchen zeile einfügen und kopieren
22.06.2006 15:25:15
Christian
Versuch mal das hier:

Sub Makro1()
For i = 1 To 50
x = Cells(i, 1)
y = InStr(1, x, "K", vbBinaryCompare)
If Not y = "0" Then
Cells(i + 1, 1).Select
Selection.EntireRow.Insert
Cells(i + 1, 1) = Cells(i, 1)
i = i + 1
End If
Next i
For i = 1 To 50
x = Cells(i, 1)
y = InStr(1, x, "F", vbBinaryCompare)
If Not y = "0" Then
Cells(i, 2) = Cells(i, 1)
End If
Next i
End Sub

Wobei K und F natürlich variabel ausgetauscht werden und i nur angenommen von zeile 1 bis 50 arbeiten soll! Eh klar kann natürlich verändert werden.
auch sodele
lg Christian
PS Wenn Problem dann kurz melden
Anzeige
AW: Zeichen suchen zeile einfügen und kopieren
23.06.2006 09:12:09
Bengel
Hallo ihr beiden
Dankeschön für die Mühen
@ Christian das funktioniert super das Teil
Kannst mir das mal kurz erläutern was Du da ungefähr machst? (Nur falls d mal nich weist was Du tuen sollst :-) ) Ich hab da irgendwie immer ein copy-befehl versucht einzubauen aber das war wohl nix..
@ Kasimir irgendwie tut sich da bei mir nix :-(
Merci nochmal
Gruß Bengel
AW: Zeichen suchen zeile einfügen und kopieren
23.06.2006 09:40:25
christian
Hallo Bengel, also mit Copybefehl gehts natürlich auch aber nicht so einfach wie das hier. Zur Erläuterung gerne:
For i = 1 To 50 'setze eine Varibale "i" mit dem Wert von 1 bis 50 (läuft dann so durch 1,2,3,......
x = Cells(i, 1)'setze eine Variable x für den Werte der Zelle (Zeile i, Spalte 1) = wie z.B. Range A1 nur umgekehrte angabe bei Cells!
y = InStr(1, x, "K", vbBinaryCompare) 'bisschen komplizierter, prüft ob in der Zelle der Wert K vorkommt und gibt die Position an (11k23 = Ergebnis 3; wenn nicht vorhanden kommt "0")
If Not y = "0" Then 'wenn y nicht 0 ist (also Wert vorhanden) dann soll was passieren)
Cells(i + 1, 1).Select 'wählt die Zelle i + 1, 1 also die Zelle unter der er den Suchwert gefunden hat.
Selection.EntireRow.Insert 'fügt in der gewählten Zelle eine Zeile ein
Cells(i + 1, 1) = Cells(i, 1) 'setzt die Zelle (i+1,1) auf den Wert der Zelle darüber - ist wie kopieren, nur schneller wenn z.B. (i,1) = 11k dann ist celle i+1,1 danach auch 11k
i = i + 1 ' das ist ein kleiner "Kunstgriff", damit ich nicht die gerade eingefügte Zelle wieder abfrage (logisch muss ich i um 1 erhöhen, damit next i dann nicht die gerade eingefügte Zelle ist sonder die nächste, gerade verschobene, sonst fährt das Makro 50mal das gleiche durch und du hast ca. 50 Zeilen mit 11k stehen :-)
End If
Next i
For i = 1 To 50 'ab hier noch mal das gleiche nur für den Wert F, und da ja keine Zeile eingefügt wird bleibt i - i damit keine Zeile übersprungen wird.
x = Cells(i, 1)
y = InStr(1, x, "F", vbBinaryCompare)
If Not y = "0" Then
Cells(i, 2) = Cells(i, 1)
End If
Next i
ALLES KLAR? wenn nicht kurz melden
lg
Christian
Anzeige

306 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige