Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
912to916
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
912to916
912to916
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

spalte in abschmitte aufteilen ?

spalte in abschmitte aufteilen ?
09.10.2007 22:48:00
andre
ich hab ein makro das bisher gut funktionierte aber durch mehr datenaufkommen möchte ich das die daten in einer spalte (G) nachträglich in 3000er-schritten zusätzlich eine nummer erhalten bei zeile 3000 z.B -1 ab zeile 6000 dann -2 angefügt bzw. eingefügt wird usw.
wie kann man das bewerkstelligen ?
gruß
andre

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: spalte in abschmitte aufteilen ?
09.10.2007 23:00:32
Uduuh
Hallo,
Code?
Gruß aus’m Pott
Udo

AW: spalte in abschmitte aufteilen ?
09.10.2007 23:35:00
Daniel
HI
probiers mal so:

Range("G:G").insert
with activesheet.usedrange.columns("G")
.formulalocal = "=H1&"-"&Aufrunden(Zeile()/3000;0)"
.formula = .value
end with
Range("H:H").delete


Gruß, Daniel
ps. nicht getestet

AW: spalte in abschmitte aufteilen ?
10.10.2007 08:51:00
Chaos
Servus,
ist nicht schön, aber funktioniert und dauert trotz Schleifen nicht mal so lange:

Sub zahlen()
Dim zeile As Long
Dim zähler As Double
Dim reihe As Long
If Range("A65536")  "" Then ' letzte Zeile ermitteln
reihe = 65536
Else
reihe = Range("A65536").End(xlUp).Row
End If
zähler = 1
For zeile = 3000 To reihe Step 3000 ' alle 3000 in der Hilfsspalte eine um 1 erhöhte Zahl einfü _
hren, z.B.: -1 , dann -2
Cells(zeile, 256).Value = "-" & zähler
zähler = zähler + 1
Next zeile
Dim zeile1 As Long
For zeile1 = 3000 To reihe ' Auffüllen der leeren zellen in der Hilfsspalte
If Cells(zeile1, 256).Value = "" Then
Cells(zeile1, 256).Value = Cells(zeile1 - 1, 256).Value
End If
Next zeile1
Dim reihe1
If Range("IV65536")  "" Then
reihe1 = 65536
Else
reihe1 = Range("IV65536").End(xlUp).Row
End If
Range("IV" & reihe1).Copy Range("IV" & reihe1 + 1 & ":IV" & reihe) ' Auffüllen des Restes in  _
der Hilfsspalte
Dim zeile2 As Long
For zeile2 = 3000 To reihe ' Zusammenfügen der Werte
Cells(zeile2, 7).Value = Cells(zeile2, 7).Value & Cells(zeile2, 256).Value
Next zeile2
Range("IV1:IV65536").ClearContents ' Hilfsspalte Inhalte löschen
End Sub


Gruß
Chris

Anzeige
AW: spalte in abschmitte aufteilen ?
10.10.2007 08:59:37
andre
danke für eure hilfe !!! ich werde die varianten gleich mal durchprobieren
das hilft mir schonmal ein großes stück weiter um ordnung rein zu bringen :-)

AW: spalte in abschmitte aufteilen ?
10.10.2007 21:23:00
Daniel
Hi
sorry, in meinem Code ist noch ein kleiner Fehler drin, hier die Korrektur (Anführungszeichen, die zum Formelstring gehören, müssen gedoppelt werden):

Range("G:G").insert
with activesheet.usedrange.columns("G")
.formulalocal = "=H1&""-""&Aufrunden(Zeile()/3000;0)"
.formula = .value
end with
Range("H:H").delete


@Chris
mein Code braucht beim mir für 60.000 Zeilen c.a. 1 sek, deiner 12 - 13 sekunden.
Gruß, Daniel

Anzeige
AW: spalte in abschmitte aufteilen ?
10.10.2007 09:50:00
andre
leider funktioniert es doch noch nicht ganz es wird nur um eine spalte verschoben
ich habe z.B. in einer spalte 10000 einträge untereinander stehen ,es ist immer das selbe wort,
jetzt soll folgendes geschehen ab zeile 3000 soll dann -1 angefügt werden und ab zeile 6000 -2
es muss aber alles in einer spalte bleiben
zB. abschnitt-1 ab 3000 dann abschnitt-2 bei 6000 abschnitt-3 usw.
gruß
andré

AW: spalte in abschmitte aufteilen ?
10.10.2007 21:44:20
Daniel
Hi
der Code fügt zwar eine Spalte ein, aber die wird anschleißen wieder gelöscht, so daß eigentlich sonst keine Veränderung am Code stattfinden sollte.
der einzige Fehler, der noch drin ist, ist daß die Anführungzeichen, die zur Formel gehören, gedoppelt werden müssen, sonst gibts nen Fehler.
Eingentlich hätte das Programm an dieser Stelle mit einem Fehler abbrechen müssen, hast du vielleicht die Fehlerbehandlung mit ON ERROR RESUME NEXT deaktivert? Das sollte man nicht tun.
so, jetzt hier noch mal mein Korrigierter Code, der dann auch laufen sollte

Range("G:G").insert
with activesheet.usedrange.columns("G")
.formulalocal = "=H1&""-""&Aufrunden(Zeile()/3000;0)"
.formula = .value
end with
Range("H:H").delete


abweichen zu deinem Wunsch wird schon ab der ersten Zeile ein "-1" angefügt.
wenn das stört und die ersten 2999 Zeilen ohne Ergänzung bleiben sollen, müsste der Code so aussehen:


Range("G:G").Insert
With ActiveSheet.UsedRange.Columns("G")
.FormulaLocal = "=wenn(zeile()


Gruß, Daniel

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige