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

zeile einfügen

zeile einfügen
07.11.2006 13:05:41
werner
Hallo zusammen,
ich benötige euer Hilfe - stehe gerade auf dem Schlauch: der folgende code soll unmittelbar über den zellen, in denen "g" ersetzt wurde, eine zeile einfügen - er fügt sie aber immer in der ganz oben ein - was mache ich falsch?
viele Grüße und danke
werner

Sub Test()
Dim i As Integer
Dim rng
For i = 2 To 14 Step 2
rng = Cells(Rows.Count, ActiveCell.Row).End(xlUp).Row
Cells(1, i).Select
Range(Cells(3, i), Cells(rng, i)).Replace what:="G", Replacement:=913
ActiveCell.EntireRow.Insert
Next i
End Sub

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

Betreff
Datum
Anwender
Anzeige
AW: zeile einfügen
07.11.2006 13:39:53
Stefan
Hallo Werner,
Schreib ein
Cells(3, i).Select
vor die Zeile
ActiveCell.EntireRow.Select.
Schoene Gruesse
Stefan
AW: zeile einfügen
07.11.2006 13:47:44
Werner
hallo Stefan,
klappt leider nicht, da dann ja immer in zeile 3 eingefügt wird.
Grüße
Werner
lösung gefunden
07.11.2006 13:52:10
werner
so klappt es:

Sub Test()
Dim i As Integer
Dim rng
For i = 2 To 14 Step 2
rng = Cells(Rows.Count, ActiveCell.Row).End(xlUp).Row
Range(Cells(3, i), Cells(rng, i)).Find("G").Activate
ActiveCell.EntireRow.Insert
Range(Cells(3, i), Cells(rng, i)).Replace what:="G", Replacement:=913
Next i
End Sub

AW: zeile einfügen
07.11.2006 13:51:36
Bertram
Hallo Werner,
1) Mit Cells(1, i).Select markierst du immer die erste Zeile der Spalte i
2) Range(Cells(3, i), Cells(rng, i)).Replace what:="G", Replacement:=913 ersetzt zwar das G durch 913, das interessiert die ActiveCell aber Nullinger, d.h. deine ActiveCell ist immer noch Cells(1,i).
Probier's mal so (hab's aber nicht getestet):

Sub Test()
Dim i As Integer
Dim rng As Integer
Dim zelle As Range
For i = 2 To 14 Step 2
rng = Cells(Rows.Count, ActiveCell.Row).End(xlUp).Row
For Each zelle In Range(Cells(3, i), Cells(rng, i))
If zelle.Value = "G" Then
zelle.Value = 913
zelle.EntireRow.Insert
End If
Next zelle
Next i
End Sub

Gruß
Bertram
Anzeige
klappt - danke! owT
07.11.2006 13:56:32
werner
s
Gerne oT
07.11.2006 14:02:15
Bertram
AW: klappt - danke! owT
07.11.2006 14:05:28
Erich
Hallo Werner,
wenn in einer Zeile in mehreren Spalten ein "G" vorkommt - sollen dann davor auch mehrere Zeilen eingefügt werden?
Wenn mur eine Zeile eingefügt werden soll:
Sub Test()
Dim lngZ As Long
Dim i As Integer
Dim rng
Dim bolGef As Boolean
rng = Cells(Rows.Count, ActiveCell.Row).End(xlUp).Row    ' ActiveCell.Row als Spalte?
rng = Cells(Rows.Count, ActiveCell.Column).End(xlUp).Row ' oder Spalte der akt. Zelle?
rng = Cells(Rows.Count, 2).End(xlUp).Row                 ' oder Spalte 2?
For lngZ = 3 To rng
bolGef = False
For i = 2 To 14 Step 2
If InStr(Cells(lngZ, i), "G") > 0 Then
Cells(lngZ, i).Replace what:="G", Replacement:=913
bolGef = True
End If
Next i
If bolGef Then Rows(lngZ).Insert
Next lngZ
End Sub
(Etwas unklar ist mir, wieso du in der Belegung der Zeilenzahl (Long) rng ActiveCell.Row als Spalte verwendetst.)
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
ist ja super ..
07.11.2006 22:58:05
werner
..dass einem die Antwort schon vor der Frage geliefert wird - danke Erich! ich selbst hatte gar nicht so weit gedacht (sass schon viel zu lange vor der Kiste) und habe dann in meinem fortgeschrittenen Dilettantismus einen Workaround gefunden - aber so ist es natürlich viel eleganter - wieder was dazu gelernt.
Mit Row/column hast du natürlich auch recht.
Herzliche Grüße aus München
Werner

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige