Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1264to1268
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
Inhaltsverzeichnis

VBA - Einfügen zwischen >"hier"< ! Bitte um Hilfe

VBA - Einfügen zwischen >"hier"< ! Bitte um Hilfe
Thore
Hallo und guten Abend liebe Excelgemeinde!
Ich habe folgendes Szenario:
Tabelle 1 = "Referenztabelle"
Wird in Spalte A, B und C fortlaufend mit neuen Daten gefüllt aus
z.B. aktuell Tabelle "06/12"
In dieser werden "Seriennummern" + Beschreibung und Preis in Spalte "B", "C" und "F" eingepflegt.
Diese werden dann per "Wenn/Zählenwenn" per Hilfsspalte "G" mit der "Referenztabelle" abgeglichen.
Wenn eine "Seriennummern" noch nicht in der "Referenztabelle" vorkommt erscheint in "G" ein "X" und die Nummer + Anhang wird manuel in die RefTabelle eingepflegt, und zwar direkt in passender Reihenfolge.
Also wenn neu 235645652 dann wird eine neue Zeile zwischen 235645651 und 235645653 eingefügt
und die Daten aus "B" C" und "F" nach "A" "B" und "C" einkopiert (per Copy Paste)
Brzg. gleich in passender Reihenfolge: Ich weiß, einfacher wäre einfach in die nächste Freie unten drunter.
In der Praxis aber sehr unvorteilhaft für alle weiteren Bearbeitungsschritte!
Aktuelle Größe der Refdatei: ca3800 Seriennummern
Durchschn. Anzahl neuer Nummern pro Bearbeitung ca.7-15
Erwartet am Ende aller Tage ca. 25.000 bis 30.000
Kann man diese Teilschritte automatisieren per VBA? Und wenn ja bitte ich um Hilfe!
Dieses Copy Pasten mach müde :o)
Anbei der Pfad zur Testdatei.
https://www.herber.de/bbs/user/80592.xlsx
Schon einmal vielen Dank
Thore

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: VBA - Einfügen zwischen >"hier"< ! Bitte um Hilfe
17.06.2012 00:36:05
hary
Moin Thore
Ich weiß, einfacher wäre einfach in die nächste Freie unten drunter

Warum nicht? Anschliessend sortieren nach Seriennummern. Das geht am schnellsten.
gruss hary
AW: VBA - Einfügen zwischen >"hier"< ! Bitte um Hilfe
17.06.2012 00:48:41
Thore
Hary / Thore
In der Praxis aber sehr unvorteilhaft für alle weiteren Bearbeitungsschritte!

oder auch:
"Wenn Gummistiefel dann nur wenn sonst nasse Füße"
Also zurück zur Frage:
Geht das per VBA (ich sage jetzt mal "na klar") nur wie! Bei solchen Aktionen helfen auch meine
Makro Recorder-Lego-Baukasten Skills nicht weiter!!!
Für konstruktive(re) Antworten schon mal vielen Dank!
PS: nicht persönlich gemeint ;)
Thore
Anzeige
etwas abgeändert,...
17.06.2012 01:08:47
Matze,Matthias
Hallo Thore , Hi Hary
Test mal die Datei ob dir das zusagt : https://www.herber.de/bbs/user/80593.xlsm
Habe aber in der Referenztabelle den Aufbau der Anderen Tabelle angeglichen(so war es einfacher zu kopieren.
Gruß Matze
AW: etwas abgeändert,...
17.06.2012 01:26:32
Thore
Matze / Thore
Ich frage jetzt nicht wie Du das gemacht hast.
Erster Versuch sieht auf jeden Fall sehr gut aus.
Falls nichts mehr von mir kommt ist alles i.O.
Vielen Dank und besten Gruß
Thore
AW: LOL, sry....
17.06.2012 01:49:02
hary
Hallo
.... da muss ich lachen. ;-))))

Cells(Rows.Count, 2).End(xlUp).Row + 1

With ActiveWorkbook.Worksheets("Referenztabelle").Sort

Ist genau was ich Dir Vorgeschlagen habe. Also doch Gummistiefel!!
Hallo Matze: Hab ich auch so gemacht, nur statt Schleife hab ich den Autofilter genommen.
Nach diesem Motto:

Dim a as long
With Sheets("Referenztabelle")
a = Cells(Rows.Count, 1).End(xlUp).Row
Range("$B$1:$G$" & a).AutoFilter Field:=6, Criteria1:=""
Union(Range("B2:B" & a), Range("C2:C" & a), Range("F2:F" & a)).SpecialCells( _
xlCellTypeVisible).Copy .Cells(.Cells(Rows.Count, 1).End(xlUp).Row + 1, 1)
Range("$B$1:$G$" & a).AutoFilter
End With

gruss hary
Anzeige
@ Hary - Freu, dich mal wieder zu lesen,...
17.06.2012 12:46:01
Matze,Matthias
...na wie gehts?
ich hatte deinen Beitrag noch nicht mal gelesen und hatte das mit dem "filtern" gleich im Kopf.
Der Aufwand extra die Seriennr. so einzuordnen , wie er das Anfangs haben wollte, gestalltet sich
auch etwas schwierig, soweit bin ich mit meinen VBA künsten noch nicht.
- So hatten wir mal was zum Schmunzeln,
Dir und auch Allen Anderen ein Schönes u. hoffentlich sonniges WE .
Gruß Matze
AW: @ Hary - Freu, dich mal wieder zu lesen,...
17.06.2012 14:44:24
Thore
Hallo Matze / Hary und Excelgemeinde,
Ihr beide habt natürlich Recht.
Nur habe ich heute Morgen erst gesehen das der Code Sortiert.
Meine Frage hingegen bezieht sich aber auf "ohne Sortieren"
Ich möchte erreichen dass eine Zeile eingefügt wird und die Daten dann dort eingetragen werden "ohne Sortieren"
Es scheint als wäre es recht kompliziert, deswegen lasse ich die Frage noch "offen"!
Könnt Ihr, und natürlich auch alle Anderen, bitte noch mal drüberschauen.
Vielen Dank
Thore
PS:
erstmal komme ich mit den Gummistiefeln klar. In der Ferne sehe ich aber schon eine verdammt tiefe Pfütze! ;o)
Anzeige
AW: teste mal
17.06.2012 20:17:42
hary
Hallo Thore
Hab ich aber nicht mit >=3800 getestet. Makro nimmt das Active Blatt
https://www.herber.de/bbs/user/80606.xlsm
gruss hary
Hallo Matze: Urlaub :-))
Code:

Sub rueber()
Dim a As Long
Dim wksQuelle As Worksheet
Dim i2 As Long
Dim zelle As Range
Application.ScreenUpdating = False
Set wksQuelle = ActiveSheet
With Sheets("Referenztabelle")
a = wksQuelle.Cells(wksQuelle.Rows.Count, 2).End(xlUp).Row
wksQuelle.Range("$B$1:$G$" & a).AutoFilter Field:=6, Criteria1:=""
For Each zelle In wksQuelle.Range("$B$1:$B$" & a).SpecialCells(xlCellTypeVisible)
For i2 = 2 To .Cells(.Rows.Count, 1).End(xlUp).Row
If .Cells(i2, 1) > wksQuelle.Cells(zelle.Row, 2) Then
.Rows(i2).Insert xlShiftUp
Union(wksQuelle.Cells(zelle.Row, 2), wksQuelle.Cells(zelle.Row, 3), wksQuelle. _
Cells(zelle.Row, 6)).Copy .Cells(i2, 1)
Exit For
End If
Next
Next
End With
wksQuelle.Range("$B$1:$G$" & a).AutoFilter
Set wksQuelle = Nothing
Application.ScreenUpdating = True
End Sub

Anzeige
AW: 1a - sollte auf die Bestenliste!!!
17.06.2012 23:37:14
Thore
Moin Hary,
Dein Code ist Sensationell!
Habs gerade mit 5000 abzugleichenden Datensätzen + 30 Neue zu kopierende probiert.
Funktioniert ohne murren :), sehr schnell und auch noch flexibel.
1a
Sag, gibt es hier eigentlich sowas wie die "Hall of VBA-Code"
Da sollte der hier rein. Den gab es so noch nicht (oder?)
Vielen Dank und noch eine fröhliche EM-Sause
Gruß
Thore
AW: Danke
17.06.2012 23:45:37
hary
Hallo
Danke fuer die Blumen.;-)
Den gab es so noch nicht (oder?)

Doch bestimmt so in der Art.
Die Hall of Fame gibt es. Schau mal ins Archiv da hast Du eine Million eintraege.
gruss hary
Anzeige

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige