Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1496to1500
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

Werte mit verschieben

Werte mit verschieben
02.06.2016 20:48:53
Steffi
Hallo und guten Abend zusammen,
benötige wieder einmal Hilfe von Euch...
In der Beispieldatei habe ich in Tabelle 1 von Zellen B bis D verweise auf Zellen in Tabelle 2.
In Zellen E und F werden Daten manuell eingegeben.
Jetzt ist mein Problem, da in Tabelle 2 immer wieder neue Daten dazu kommen oder wegfallen, passen die manuell eingegebenen Daten in den Zellen E und F nicht mehr zu den Daten davor, da die Daten in Tabelle 2 sich auch in der Reihenfolge ändern.
Wie kann ich das lösen?
Ich komme einfach nicht dahinter :-(
Für Eure Hilfe vielen Dank
Liebe Grüsse
Steffi
https://www.herber.de/bbs/user/105947.xlsx

16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Werte mit verschieben
02.06.2016 23:00:35
Piet
Hallo Steffi,
ich würde dir gerne helfeni aber dazu müsste ich zuerst 3 Jahre Studium in Hellsehen machen!!
Gefolgt von 3 Jahre Studium für "höhere Mathematik" und einem Praktikum im "Durchblicken"
Sorry, ein bisschen Spass muss sein, auch im Forum. Werden wir mal konkret ...
Ich habe deine Beispieldatei geladen, und bin durchaus Pfiffig. Aber selbst ls gelernter Kaufmann
faellt es mir schwer bei der Stückzahl von 1000 in Zeile 1 zu erkennen und zu verstehen wieviele
Schraenke, Tische, Stühle da auf Lager sind? Würdest du da durchblicken?
In Tabelle 2 sehe ich einen Text, aber ohne jeden Zusammenhang? - Was sollen wir da bearbeiten?
Ich weiss nicht wie die anderen Ratgeber das sehen, ich löse Aufgaben im Forum immer per Makro.
Aber ob Formel Lösung oder Makro, solange keiner durchblickt was zugeordnet werden muss, was wohin
geschoben werden muss, können wir auch keine Lösung anbieten . Es fehlt hier die komlette Durchsicht
wozu die Tabelle 2 dient, was dort eingetragen wird, was sich verschiebt, wohin? Und vor allem jeder
Zusammenhang mit der Stückzahl in Tabelle1. Das können wir doch unmöglich selbst erraten!
Ich bitte dich höflich diese Aufgabenstellung genauer zu praezesieren.
mfg Piet

Anzeige
AW: Werte mit verschieben
03.06.2016 19:10:13
Steffi
Hallo Piet,
da muss ich dir voll und ganz zustimmen, lach.
Habe die Beispieldatei etwas überarbeitet um hier Licht ins Dunkle zu bringen.
In Tabelle 2 werden Daten aus dem Warenwirtschaftssystem eingefügt die im Prinzip als Datenbank fungiert und täglich erneuert wird. Nun ist es so das im System neue Daten angelegt oder alte gelöscht werden, was natürlich wenn man diese Daten in Tabelle 2 einfügt, auswirkung auf Tabelle 1 haben.
Da Tabelle 1 die Daten von Artikelnr. bis Lagerort aus Tabelle 2 per Formel holt, kann es passieren das sich hier die Reihenfolge der Artikel ändert. Da die Stückzahlen allerdings in den Zellen in Tabelle 1 per Hand eingetragen werden, bleiben diese immer da wo sie sind und verschieben sich nicht mit, oder werden gar gelöscht falls es den Artikel in Tabelle 2 nicht mehr gibt.
Ich hoffe es diesmal etwas verständlicher erklärt zu haben :-)
Liebe Grüsse
Steffi
https://www.herber.de/bbs/user/105976.xlsx

Anzeige
AW: wie Du das lösen kannst? ...
04.06.2016 08:30:19
...
Hallo Steffi,
... z.B. ganz einfach so, das Du Deine Mengenerfassung im Datenblatt (bei Dir Tabelle2) und im Tabelle1 lediglich Deine Auswertungen vornimmst.
Gruß Werner
.. , - ...

AW: Werte mit verschieben
04.06.2016 23:08:52
Piet
Hallo Steffi
ich habe eine Beispieldatei für dich. Was ich da ausgeknufft habe könnte selbst Werner verblüffen.
Bitte lade einmal deine Daten in die Beispieldatei zum Testen. Ich will nur sicher sein das ich keinen
Fehler im Makro habe. In der Beispieldatei können keine Originaldaten zerstört werden.
Wenn du die beiden Tabellen abgleichst garantiere ich dir einen Freudensprung. Ist ein Kölsch wert.
Mehr wird nicht verraten. Ich bin auf deine Rückantwort gespannt.
hallo Werner
es würde mich rein fachlich interessieren wie du meine Idee und die Makro Lösungen findest.
mfg Piet
https://www.herber.de/bbs/user/105997.xls

Anzeige
AW: Werte mit verschieben
05.06.2016 09:21:56
Steffi
Guten Morgen Werner,
guten Morgen Piet,
also manchmal denkt man um viel zu viele Ecken, wobei es so einfach sein kann!
Mit deinem Hinweis Werner konnte ich mein Problem eigentlich schon lösen, mit einer Hilfstabelle und ein paar SVerweisen ging es dann.
Danke Dir
Piet was soll ich da sagen?
Das ist schon fast Luxus was Du da angestellt hast über VBA und ich bin Sprachlos was man alles damit anstellen kann.
Ich habe es mal durchgespielt anhand der Beispieldatei...
Steht mir bei Deiner Arbeit eigentlich gar nicht zu, hier noch etwas geändert haben zu wollen, lach.
Also wenn neue Artikel in Tabelle1 eingefügt werden, dann wird der "Tatsächliche Bestand" in den Zellen "F" gelöscht. Die Bestände sollten aber bestehen bleiben.
Dann noch wenn in Tabelle2 ein Artikel nicht mehr existent ist, sollte die ganze Zeile in Tabelle1 gelöscht werden.
Ja und die Überraschung ist dir echt gelungen, Respekt :-) Es macht echt Spass zu sehen was alles möglich ist und vielen Dank für die Zeit die du dir genommen hast. Das ist nicht selbstverständlich...
Also wenn du mir die beiden oben genannten Dinge noch angepassen könntest, wäre das echt super.
Echt tolles Forum hier
Danke Euch
Liebe Grüsse
Steffi

Anzeige
AW: da gibt es leider noch "Ecken und Kanten" ...
05.06.2016 12:49:28
...
Hallo Piet,
... Dein Aufwand in allen Ehren. Doch gemäß ursprünglicher Aufgabenstellung wollte Steffi ja z.B. auch Daten in Tabelle 2 wegfallen lassen können. Anstelle "wegfallen könnte jemand aber auch die Zeilen löschen. Lösche mal Zeile 3 und Zeile 12 und schau Dir danach das Ergebnis in Tabelle1 an.
Du müsstest mE also einen sehr großen Aufwand betreiben, um alle Eventualitäten abzufangen. Da wäre es mE schon einfacher, die Mengenerfassung gleich im Datentabellenblatt vorzunehmen und in Tabelle 1 nur auszuwerten.
Gruß Werner
.. , - ...

AW: da gibt es leider noch "Ecken und Kanten" ...
05.06.2016 15:00:22
Piet
Hallo Werner,
ich habe gerade deinen Hinweis gelesen, und im Makro sind tatsächlich noch Fehler.
Wie ich selbst bemerkt habe funktioniert Replace nicht richtig, das wurde geändert.
Ich bitte dich und Steffi die neuen Makros zu testen. Es sollte der Lösung näher kommen.
Hallo Steffi,
kennst du Pipi Langstrumpf, und ihren persönlichen Ordnungssinn in der "Villa Kunterbunt" ?
So must du dir bei Piet die Entwicklungsphase eines Makros vorstellen. Man hat eine Idee, es klappt nicht alles
wie es soll, dann experimentiert man solange, bis es klappt. Das Chaos im Modulblatt sieht keiner ausser mir.
Dann bereinigt man es für Steffi, versieht es mit Kommentaren, das es andere auch verstehen, und oh jeee..
macht dumme kleine Flüchtigkeitsfehler. Den hast du dann sofort entdeckt!! Das Löschen des Bestandes.
Ich sende dir zum Austausch ein neues Makro für Modulblatt "Tabelle2_abgleichen". Schau dir bitte vorher einmal
die alte Makro Zeile an, nach dem Kommentar (grün): - 'Prüf-Spalte in Tabelle2 löschen
dort findest du den Befehl: - .Range(Adr & lz2).ClearContents - vergessen wurde Tab2 davor zu schreiben!!
Excel nimmt das persönlich, und bezog diesen Befehl dann auf With Worksheets("Tabelle1") Spalte J
Gelöscht werden sollte aber die Prüfspalte J in Tabelle2. Nur, der PC kann nicht denken, befolgt Befehle.
Dabei fiel mir auch auf das Replace in Zeile 13 nicht richtig funktioniert, in 113 austauschte.
Der Fehler wurde korrigiert, deswegen schicke ich dir das komplette gänderte Makro zum tauschen.
Neue Makros:
Modul3: - vorhandes Makro löschen, es existiert bereits in - Modulblatt Tabelle_prüfen
Dafür bitte das neue Makro für Lösch Routinen einfügen und selbst testen ob es okay ist.
Es sind drei Makro die du ins Modul3 kopieren musst. Jedes mit eigener Funktion.
Zwei Makros sind zum Löschen gedacht. Das erste sucht nach Zellen mit "#NV" und löscht sie.
Das dritte Makro ist nur ais zusäztliches Makro gedacht, sucht "No Find" Text und löscht sie.
Das erste Makro fast die Makros zusammen für den Button "T2 Abgleichen" - bei Klick.
Dann wird zuerst das löschen von "#NV" ausgeführt, danach der Tabellenabgleich mit Tabelle2.
Das dritte Makro ist zur Zeit deaktiviert, durch das "'" sieht der PC es als Kommentar an.
Wenn es benötigt wird brauchst du nur das Semikolon zu entfernen, dann laeuft es mit.
Ich hoffe wir kommen so einer guten Lösung näher. Würde mich sehr freuen,
Vielleicht erfüllt das neue Mkro auch die Anforderungen auf die Werner hinwies.
Dem Button "T2 Abgleichen" neues Makro zuweisen: - Formel_löschen_und_abgleichen
mfg Piet
PS Bitte sofort testen, in 2-3 Tagen fliege ich in Urlaub, bin einige Zeit weg.
Im Modulblatt "Tabelle2_abgleichen" bitte austauchen:
Option Explicit        '4.6.2016  Piet für Herber Forum
'Korrektur:  ** falsche Löschen Spalte F in Tabelle1 **
'Tab2 fehlte, dafür stand .Range  (lösche Tabelle1)
'Replace Fehler:  Formel neu erstellt über Tabelle2
Const PrüfSpaT2 = "F"  'Prüf-Spalte in Tabelle2  (doppelte)
Const PrüfSpaT1 = "J"  'Tabelle1 wird Prüfung mit ok markiert
Dim Tab2 As Object, AC As Object
Dim rFind As Object, Adr As String
Dim Artikel As String, lz1 As Long
Dim Lagerort As String, lz2 As Long
Dim pFind As Object, lZell As Long
'Makro vergleicht Tabelle2 mit Tabelle1
'neue Artikel werden mit Formel eingefügt
Sub Formel_mit_Tabelle2_abgleichen()
Dim d As Integer, u As Integer
Dim flg As String, msg As String
Set Tab2 = Worksheets("Tabelle2")
With Worksheets("Tabelle1")
'LastZell in Tabelle 1+2 ermittlen
lz1 = .Range("A3").End(xlDown).Row
lz2 = Tab2.Range("A2").End(xlDown).Row
'Prüf-Spalte in Tabelle1 löschen
Adr = PrüfSpaT1 & 1 & ":" & PrüfSpaT1
.Range(Adr & lz1).Clear  'Clr Schrift 7
'Prüf-Spalte mit "No Find" voladen
.Range(Adr & lz1 - 2).Offset(2, 0) = "No Find"
'Prüf-Spalte in Tabelle2 löschen
Adr = PrüfSpaT2 & 1 & ":" & PrüfSpaT2
Tab2.Range(Adr & lz2).ClearContents
'** Tab2 fehlte!! korrigiert 5.6.2016
'Schleife für Tabellen 1+2 vergleichen
For Each AC In Tab2.Range("A2:A" & lz2)
flg = Empty                'doppel Prüfung Flag
Adr = AC.Address(0, 0)     'Zell-Adresse in Formel suchen
Artikel = AC.Cells(1, 2)   'Artikel Text
Lagerort = AC.Cells(1, 3)  'Lagerort
'Zell-Adresse der Artikel Nummer in Tabelle1 Spalte B suchen
Set rFind = .Columns(2).Find(What:="=Tabelle2!" & Adr, After:=.Range("B3"), _
LookIn:=xlFormulas, LookAt:=xlWhole, SearchDirection:=xlNext)
'Artikel Text + Lagerort vergleichen  ("ok")
If Not rFind Is Nothing Then
If rFind.Cells(1, 2).Value = Artikel And _
rFind.Cells(1, 3).Value = Lagerort Then
.Cells(rFind.Row, PrüfSpaT1) = "ok"
Else  'wenn unstimmig Meldung ausgeben
.Cells(rFind.Row, PrüfSpaT1) = "unstimmig"
u = u + 1  'unstimmige zaehlen
End If
End If
'No Find = neuen Artikel mit Formel anlegen
If rFind Is Nothing Then
'Vorprüfung in Tabelle2 ob Artikel Nummer doppelt vokommt
Set pFind = Tab2.Columns(1).Find(What:=AC.Value, After:=Tab2.Range(Adr), _
LookIn:=xlValues, LookAt:=xlWhole, SearchDirection:=xlNext)
'Artikel kommt im Lager doppelt vor !!
If AC.Row  AC.Row Then flg = "dopp": _
Tab2.Range(PrüfSpaT2 & pFind.Row) = "doppelt"
If flg  Empty Then d = d + 1  'doppelte Zahl
'Artikel als neuen Artikel einfügen
If flg = Empty Then
'Tabelle1 letzte Zeile ermitteln
lZell = .Range("A3").End(xlDown).Row + 1
'Tabelle1 Zeile 4 nach unten kopieren
.Range("A4:G4").Copy .Range("A" & lZell)
'Bestand aus kopierter Zeile löschen
.Range("E" & lZell).Resize(1, 2) = Empty
'Formelzeile 3 gegen Lagerzeile tauschen
.Range("B" & lZell) = "=Tabelle2!A" & AC.Row
.Range("C" & lZell) = "=Tabelle2!B" & AC.Row
.Range("D" & lZell) = "=Tabelle2!C" & AC.Row
'in PrüfSpaT1 als neuen Artikel zeigen
.Range("J" & lZell).Value = "neuer Artikel"
.Range("J" & lZell).Font.ColorIndex = 7
End If
End If
weiter:
Next AC
'ggf. Fehler in Zeile 1/2 anzeigen
If d > 0 Then .[j1] = d & "  Artikel doppelt !!": msg = [j1]
If u > 0 Then .[j2] = u & "  Artikel unstimmig !!": flg = [j2]
'ggf. Fehlermeldung ausgeben
If d + u > 0 Then MsgBox msg & Chr(10) & flg
'Abgleich wurde fehlerfrei durchgeführt
If d + u = 0 Then MsgBox "Abgleich fehlerfrei beendet"
End With
End Sub

Im Modul3 altes Makro löschen und neu einfügen:
Option Explicit        '4.6.2016  Piet für Herber Forum
'Nachtrag für Lösch Routine
Const PrüfSpaT1 = "J"  'Tabelle1 wird Prüfung mit ok markiert
Dim AC As Object, lz1 As Long
'zusammengefasste Makros für Button "T2 Abgleichen"
'Zur Info:  Ein Button kann mehrere Makros ausführen
Sub Formel_löschen_und_abgleichen()
'2/3 Makro werden nacheinander ausgeführt
Call gelöschte_Artikel_löschen
Call Formel_mit_Tabelle2_abgleichen
'wenn erfoderlich No Find aktivieren
Call NoFind_Artikel_löschen
End Sub
'dieses Makro löscht alle "#NV" Zeilen  (Artikel gelöscht)
Sub gelöschte_Artikel_löschen()
With Worksheets("Tabelle1")
'LastZell in Tabelle 1+2 ermittlen
lz1 = .Range("A3").End(xlDown).Row
'Schleife für Tabellen 1+2 vergleichen
For Each AC In .Range("B2:B" & lz1)
'bei gelöschten Artikeln Formel löschen
If InStr(AC.Formula, "#") Then _
.Rows(AC.Row).Delete Shift:=xlUp
Next AC
End With
End Sub
'dieses Makro löscht alle "No Find" Zeilen  (Artikel gelöscht)
Sub NoFind_Artikel_löschen()
Dim PrüfTxt As String
With Worksheets("Tabelle1")
'LastZell in Tabelle 1+2 ermittlen
lz1 = .Range("A3").End(xlDown).Row
'Schleife für Tabellen 1+2 vergleichen
For Each AC In .Range("A2:A" & lz1)
'bei "No Find" Artikeln Formel löschen
PrüfTxt = .Range(PrüfSpaT1 & AC.Row)
If PrüfTxt = "No Find" Then _
.Rows(AC.Row).Delete Shift:=xlUp
Next AC
End With
End Sub

Anzeige
AW: dazu ...
05.06.2016 15:38:23
...
Hallo Piet,
... normalerweise beschäftige ich mich mit VBA gar nicht. Das ich es heute mal kurz in Form des Testes getan hatte, war also eine Ausnahme.
Damit Du jedoch beruhigt in den Urlaub fahren kannst, würde ich später/Morgen Deine Aktualisierung noch einmal testen. Doch lade dazu nochmal Deine aktualisierte Datei hoch, denn bei mir lief es nach dem einkopieren Deines neuen Codes nicht. Auf Suche nach der Fehlerursache wollte ich mich jetzt auch nicht begeben.
Gruß Werner
.. , - ...

AW: Werte mit verschieben
05.06.2016 15:17:36
Piet
Nachtrag für Steffi:
ich ahbe etwas wichtiges vergessen, dir die Const PrüfSpaT2 = "F" und "J" zu erklaeren.
Das wird sicher auch Werner interessieren, denn das ist -praktische- Forum Arbeit!!
Mit diesen Buchstaben kannst du selbst bestimmen welche Spalte du in Tabelle 1 + 2 zur Prüfspalte erklaerst.
Ich muss das Prüf Ergebniss ja irgendwo hinschreiben und habe "J" und "F" gewaehlt. Benutze in Tab2 F+G
Weil ich nicht wusste ob in diesen Spalten Werte stehen können benutze ich gerne die Const Anweisung.
Dann kannst du es selbst auf deine Bedürfnisse aendern. Das Makro muss nicht umgeschrieben werden.
Im Forum habe ich so oft erlebt das Makros geschrieben werden und dann die Rückmeldung kam:
ich habe aber andere Spalten, kannst du das Makro bitte aendern. Das ich lieber Const benutze
Den Wert kann jeder User selbst abaendern. Das ist meine Praktische Forum Erfahrung ....
mfg Piet

Anzeige
AW: Werte mit verschieben
05.06.2016 18:04:14
Piet
Hallo Werner,
ich bedanke mich sehr für dein Entgegenkommen meine Beispieldatei zu Testen. Das ehrt mich.
Anbei die von mir korrigierte neue Beispieldatei. Ich hoffe das alle Fehler beseitigt simd.
Ansonsten korrigieren wir es solange, bis es für Steffi zufriedenstellend laeuft.
Ich hoffe sie hat meine Antworten gelesen, auch bezüglich Const Anweisung, es gehört dazu.
Das war mein erster Versuch zum Thema Formeln per Makro zu prüfen, somit völliges Neuland.
Umsomehr würde es mich richtig freuen wenn es gut klappt und vor allem Praxisgerecht ist.
Leichts handhaben in der Praxis finde ich ist ein wichtiger Aspekt beim Rat geben.
Jetzt freue ich mich auf den Urlaub. Habe meine Heimatstadt Köln 2 Jahre nicht gesehen.
mfg Piet
https://www.herber.de/bbs/user/106002.xls

Anzeige
AW: Werte mit verschieben
05.06.2016 19:33:22
Steffi
Hallo Piet,
ich kann es zwar nicht so adäquat Testen wie es bestimmt Werner kann, aber auch mich ehrt es mit welchem Eifer mir hier geholfen wird. Bin da einfach sprachlos...
In der von dir beigefügten Beispieldatei ist mir jetzt aufgefallen das wenn ich in Tabelle2 einen Artikel mit den dazugehörenden Daten lösche, dieser nach betätigen des Button "T2 Abgleichen" in Tabelle1 die Zeile nicht löscht.
Wenn ich allerdings das Makro "NoFind_Artikel_löschen" alleine ausführe, dann löscht er die in Tabelle2 gelöschten Artikel. Lösche ich z.B. in Tabelle2 den zweiten Artikel dann meldet er "unstimmig" wobei auch das NoFind Makro nicht mehr greift.
Wenn diese "kleine" unstimmigkeit noch ausgemerzt ist, würde ich fast behaupten das es dann sehr gut funktioniert.
So als Laie in VBA lerne ich hier immer mehr dazu, vor allem weil es auch so super noch erklärt wird.
Da es nicht so Eilig ist, lasse dir ruhig Zeit und geniesse erstmal deinen Urlaub im schönen Köln.
Übrigens mein Geburtsort :-)
Bis hierhin nochmals vielen Dank für deine Mühe und Zeit.
Auch Werner möchte ich nochmals meinen Dank aussprechen.
Liebe Grüsse
Steffi

Anzeige
AW: Werte mit verschieben
05.06.2016 23:20:21
Piet
Hallo Steffi,
danke das du das Programm getestet hast,und hast mich bei einem Denkfehler erwischt.
Macht nichts, davon lassen wir uns nicht beeindrğcken. Was lief da schief?
Beim Köschen ging ich davon aus das die ganze Zeile gelöscht wird, dann ist der Zellbezuf weg!
Man kann aber auch einfach nur den Text in der Zeile löschen, dann erscheint ein "Null Werrt"
Und da wir nicht dumm sind bügelt man den Fehler mit einem 4. Makro aus. Bitte austauschen.
Dieses Makro sucht speziell nach den Null Werten und löscht sie.
mfg Piet
Option Explicit        '4.6.2016  Piet für Herber Forum
'Nachtrag für Lösch Routine - mit Null Wert löschen
Dim AC As Object, lz1 As Long
'zusammengefasste Makros für Button "T2 Abgleichen"
'Zur Info:  Ein Button kann mehrere Makros ausführen
Sub Button_T2Abgleichen_beiKlick()
'2/3 Makro werden nacheinander ausgeführt
Call gelöschte_Artikel_löschen
Call Alle_Null_Werte_löschen
Call Formel_mit_Tabelle2_abgleichen
'wenn erfoderlich No Find aktivieren
Call NoFind_Artikel_löschen
End Sub
'dieses Makro löscht alle "#NV" Zeilen  (Artikel gelöscht)
Sub gelöschte_Artikel_löschen()
neu:  Dim f As Integer   'f=wdh
Dim Wert
With Worksheets("Tabelle1")
'LastZell in Tabelle 1+2 ermittlen
lz1 = .Range("A3").End(xlDown).Row
f = 0
'Schleife für Tabellen 1+2 vergleichen
For Each AC In .Range("B2:B" & lz1)
'bei gelöschten Artikeln Formel löschen
If InStr(AC.Formula, "#") Then f = f + 1: _
.Rows(AC.Row).Delete Shift:=xlUp
Next AC
If f > 0 Then GoTo neu
End With
End Sub
'dieses Makro löscht alle "No Find" Zeilen  (Artikel gelöscht)
Sub NoFind_Artikel_löschen()
neu:  Dim f As Integer   'f=wdh
Dim PrüfTxt As String
With Worksheets("Tabelle1")
'LastZell in Tabelle 1+2 ermittlen
lz1 = .Range("A3").End(xlDown).Row
f = 0
'Schleife für Tabellen 1+2 vergleichen
For Each AC In .Range("A2:A" & lz1)
'bei "No Find" Artikeln Formel löschen
PrüfTxt = .Range(PrüfSpaT1 & AC.Row)
If PrüfTxt = "No Find" Then f = f + 1: _
.Rows(AC.Row).Delete Shift:=xlUp
Next AC
If f > 0 Then GoTo neu
End With
End Sub
'dieses Makro löscht alle 0 Wert Zeilen  (Artikel gelöscht)
Sub Alle_Null_Werte_löschen()
neu:  Dim f As Integer   'f=wdh
On Error Resume Next
With Worksheets("Tabelle1")
'LastZell in Tabelle 1+2 ermittlen
lz1 = .Range("A3").End(xlDown).Row
f = 0
'Schleife für Tabellen 1+2 vergleichen
For Each AC In .Range("B2:B" & lz1)
'bei gelöschten Artikeln Formel löschen
If AC = 0 Then f = f + 1: _
.Rows(AC.Row).Delete Shift:=xlUp
Next AC
If f > 0 Then GoTo neu
End With
End Sub

Anzeige
AW: Werte mit verschieben
06.06.2016 04:44:00
Piet
Hallo Steffi,
mir ist gerade noch ein Fehler eingefallen. Ersetze den unteren Codeteil im Modul:
"Tabelle_prüfen" und Modul "Tabelle_abgleichen". Es bezieht sich auf den "lz2" Befehl.
Mit "lz2" wird die letzte Zelle in Tabelle2 gesucht. Den lz1 kannst du wie er ist lassen.
Bisher nahm ich an das in Tabelle2 keine Leerzeilen sind. Das von Oben bis unten Werte sind.
Wenn da über Lücken sind, weil Artikel gelöscht wurden, stimmt der Befehl "End(xlDown)" nicht.
Der sucht die letzte Zelle von Oben nach Unten. Bis er auf die erste -Leerzeile- trifft!!
IN deinem Fall, mit Lücken dazwischen, musst du von Unten nach Oben suchen. "End(xlUp)"
Ich gehe von max 20.00 Zeilen aus, wenn du mehr hast erhöhe die Zahl wie du willst.
lz2 = Range("A2").End(xlDown).Row - bitte ersetzen durch
lz2 = Range("A20000").End(xlUp).Row - Suche von Zeile 20.000 (oder mehr) nach Oben!!
mfg Piet

AW: Werte mit verschieben
06.06.2016 10:02:12
Piet
Hallo Steffi, Hallo Werner,
mir sind gerade noch ein paar Ideen gekommen, schreibe an einer Beispiel Version 3.
Gebt mir 1 Stunde Zeit, dann stelle ich eine neue überarbeitete Beispieldatei ins Forum
mfg Piet

AW: Werte mit verschieben
06.06.2016 13:20:24
Piet
Hallo Steffi, Hallo Werner,
ich hoffe das die 3.Version gut geworden ist, hoffentlich alle Fehler beseitigt sind.
Es gibt eine zusaetzliche Prüftung, ich habe sie "Prüfung Werner" benannt, weil ich
dabei an ihn gedacht habe. Eine völlig unabhaengige Prüfung die nicht Zeilen und Spalten
Richtigkeit prüft, sondern nur nach "#NV" Fehler, Null Werten, versehentlichem Text oder
Leerzeilen im Formelbereich sucht, und nur diese Fehler meldet. Man kann die Zelle direkt
anspringen. Sehr praktisch bei grossen Matrix Dateien. Zumindes war das meine Überlegung.
Vielleicht kann Werner sie für eigene Zwecke nutzen, oder andern zum Prüfen/Testen anbieten.
Würde mich freuen wenn das Ergebnis euıch gefaellt. Bin gespannt auf eure Antwort. So long ...
https://www.herber.de/bbs/user/106021.xls

AW: freu Dich erst einmal auf Deinen Urlaub ...
07.06.2016 15:46:43
...
Hallo Piet,
... und genieße diesen.
Gestern war ich nun doch nicht dazu gekommen, mir Deine neueste Version mal anzuschauen.
Im Vergleich zu den Vorgängerversionen gibt es schon erkennbare Fortschritte. Doch es gibt noch immer einige "Ecken und Kanten".
Der Inhalt des Datumsfeld muss natürlich zumindest das akt Datum (evtl. inkl. Zeit) beinhalten - das geringste Problem. Ein neuer Datensatz der als doppelt erkannt wird, wird aber trotzdem in Tabelle 1
neu aufgenommen. Wenn in Tabelle1 Datensätze gelöscht werden, hängt sich das Programm bei einem neuen Abgleich auf.
Das Prüfprogramm "Werner" ist in momentaner Ausführung wenig hilfreich. Geeigneter wäre da schon ein visuelle Kennzeichnung aller Zellen, die als entsprechende Fehler ermittelt werden und zwar auf einen Hieb. Diese sollte dann aber auch als Schalter wirken (Kennzeichnung ein /aus).
Aber wie geschrieben, genieße jetzt erst einmal Deinen Urlaub.
Gruß Werner
.. , - ...

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige