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

AW: Daten gezielt übertragen anhand von Bedingunge

AW: Daten gezielt übertragen anhand von Bedingunge
08.06.2016 10:44:03
Bedingunge
Ich will nur auf Piets Antwort meines Beitrags antworten,
ich habs versucht. Bei mir speichert das einfach nicht.... Ich versteh dieses Forum nicht :(
Deswegen wieder der Weg hierüber: TUT MIR LEID!
Hallo Piet,
vielen vielen Dank für deine Antwort und deinen Lösungsvorschlag. Hat mich sehr gefreut !!!!!!
Ich hab mir das Makro jetzt mal angeschaut und versucht es zu verstehen. Ich hätte leider noch ein paar Anmerkungen:
1.Das Tabellenblatt „gewünschte Datenbasis“ EXISTIERT NICHT: Ich wollte eigentlich nur veranschaulichen wie das Makro das Tabellenblatt „Datenbasis“ verändern soll. Also „Datenbasis“ zeigt den Ursprungszustand und „gewünschte Datenbasis“=Datenbasis nach Anwenden des Makros.. Sollte aber eben NICHT in dem Code enthalten sein.. D.h. man bräuchte die 3. Schleife und jeweils die dritten Variablen gar nicht.
2.Außerdem befinden sich die beiden Tabellenblätter EIGENTLICH in zwei getrennten Excel-Dateien. Ich hab es nur in einem einzigen dargestellt um meine Problematik vereinfacht darzustellen.
3. Dass nur Spalte C und AF kopiert werden ist richtig so. Ich möchte jedoch nicht, dass auch die anderen Zellen überschrieben werden in diesen Spalten, sondern NUR die, die die eine gleiche Nummer in den jeweiligen Spalten A haben, sollen den dazugehörigen Wert in Spalte C und AF verändert bekommen. Der Rest darf auf KEINEN Fall verändert werden.
4. Die Nummern im „Übersichtsblatt“ können ja im „Datenbasis“ Tabellenblatt MEHRFACH auftreten. Ich kann das leider in dem Makro nicht ganz nachvollziehen, ob du das abgesichert hast, dass die Nummer beispielsweise auch 100 mal im „Datenbasis“ Tabellenblatt vorkommen kann und dann in allen 100 dazugehörigen Werten in den Spalten C und AF die Werte eingetragen werden – unter der Voraussetzung, dass in Spalte C der Wert „Erledigt“ enthalten ist, der dann eben in „In Ordnung“ umgeschrieben werden soll. Falls „Nicht Erledigt“ enthalten ist, in Spalte C, soll GAR NICHTS passieren.
Ich wäre dir/euch sehr dankbar, wenn du/ihr mir weiterhelfen könntet.
Vielen Dank im Voraus. Herzliche Grüße
Hilfloser User

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

Betreff
Datum
Anwender
Anzeige
AW: Piet ist wahrscheinlich schon im Urlaub ...
08.06.2016 11:45:12
...
Hallo,
... in der Zwischenzeit kannst Du Dich ja etwas mit dem Forum vertrauter machen ;-)
Es gibt hier u.a. auch eine FAQ-Liste. Möglicherweise ist Dein entsprechender alter thread für Antworten nicht mehr aktiv. Aber alle können ihn noch lesen. Du jedoch kannst ihn am schnellsten finden (über "DEINE BEITRÄGE"). Dann solltest Du Dir davon die URL-Adresse kopieren und diesen als Link hier bereitstellen. Vielleicht findet sich dann auch eher ein evtl. anderer Antworter.
Gruß Werner
.. , - ...

AW: Piet ist wahrscheinlich schon im Urlaub ...
08.06.2016 11:50:21
Hilfloser
Hallo Werner,
alles klar danke für deine Antwort.
Das war mein bisheriger Beitrag mit Piets Vorschlag:
http://xlforum.herber.de/
Ich hoffe ihr könnt mir weiterhelfen!
Vielen vielen Dank!
Herzliche Grüße
Hilfloser User

Anzeige
AW: Piet ist wahrscheinlich schon im Urlaub ...
08.06.2016 11:52:47
Hilfloser
Hallo Werner,
entschuldige, ich habe gesehen der URL-Link war wohl falsch, SORRY!
Ich schicke euch einfach mal Piets Antwort:
Hallo Hilfloser User,
normalerweise gehe ich in Threads die andere Ratgeber bearbeiten nicht hinein.
Wenn ein Frager aber in anderen Forums keine Hilfe bekam nervt mich das tierisch!
Wenn andere Forums keine Lösung bieten könne, hier bist du im Herber Forum, wir können es.
Und ich bin Piet. Anbei ein Lösungsvorschlag von mir als Beispieldatei, in der Hoffnung
das ich die Aufageb richtig verstanden habe und die Lösung gut ist. Sollte es falsch sein
aendern wir das Makro, bis diese Aufgabe zufriedenstellend laeuft.
Kopert werden von mir nur die Spalten C + AF, wenn noch andere Werte zu kopieren sind sollte
ich das wissen. das kann man auch noch mit einbauen. Schau dir die Sache erst mal in Ruhe an.
Alles andere ist für mich unnötige Diskussion, die für beide Seiten zu keinem befriedigenden
Ergebsniss führt. Denn Ratgeber können sich auch selbst mir Aufregen über Crossing aergern!
mfg Piet
https://www.herber.de/bbs/user/105934.xls

Anzeige
AW: ithread offen, VBA-Lösung gesucht owT
08.06.2016 11:57:03
...
Gruß Werner
.. , - ...

AW: das ist nicht der richtige Link ...
08.06.2016 11:54:42
...
Hallo,
... sondern nur der Link auf das Forum an sich. Du musst Deinen thread erst unter "DEINE BEITRÄGE") suchen und davon den Link senden.
Gruß Werner
.. , - ...

AW: thread offen owT
08.06.2016 12:11:09
...
Gruß Werner
.. , - ...

AW: thread offen owT
08.06.2016 15:58:48
Hilfloser
Ich werde wohl nie eine passende Lösung finden :(

Anzeige
AW: AW: Daten gezielt übertragen anhand von Bedingunge
08.06.2016 21:44:26
Bedingunge
Hallo Hilfloser User,
gedanklich bin ich bereits in Urlaub, als ich auf grund einer Ahnung noch mal reinschaute.
Tagelang habe ich auf eine Rückmeldung gewartet. Und den Thread zum Schluss "abgehakt"
Haette ich den obigen Text direkt gehabt haette ich das Makro auch anders geschrieben.
Danke an Werner der dich auf meinen Urlaub hingewiesen hat, ich fliege bald!
Ich hoffe "Hlfloser User" schaut noch mal rein, oder öffnet evtl. einen neuen Thread.
Hier ein korrigierter Code, in der Hoffnung das du noch mal ins Forum reinschaust!
In der Const Anweisung müssen die Original Namen -deiner Arbeitsmappen- stehen.
ggf. auch die Worksheet Namen aendern, bei mir zum Test: - Worksheets("Datenbasis")
Zur Frage ob auch 100 Nummern gefunden werden, ein klares Ja! Alle werden gefunden!
VBA Grundkurs: - Loop in Loop Funktion! Genauer gesagt: - für Laien gesagt
Zwei For Next mit -vollem Range Bereich- ineinander verschachtelt!
Erhöht die Laufzeit, wird nicht gerne gesehen, aber so finde ich alle.
Unklar ist mir: - was mit dem Stand ist, dem Text "passt". Muss der ausgewertet werden?
Wenn Nein diese Variable löschen: - Stand = AC.Cells(1, 2) 'Status "passt" laden
Und die If Then Anweisung mit Stand löschen - If Stand = "passt" Then. Bitte mit End IF!!
Ansonsten diesen geanderten Code in einer kleinen Beispieldatei testen ob es klappt.
Bis morgen Nachmittag kann ich nochmal reinschauen, dann bin ich aber weg.
mfg Piet
Option Explicit   '8.6.2016  Piet für Herber Forum  (korrigiert)
'Hier müssen die Original Datei-Namen eingesetzt werden !!
'ggf. bitte auch die Tabellen Namen aendern s. Worksheets
Const DBWb = "Datenbasis.xls"        'Workbook Datenbasis
Const ÜBWb = "Übersichts Mappe.xls"  'Workbook Übersicht
Dim ÜBlatt As Worksheet    'Übersichtsblatt
Dim DBasis As Worksheet    'Datenbasis
'Wertet Nummer und Status aus
'alle Zellen mit gleicher Nummer
'andere Zellen bleiben unveraendert
Sub Status_Daten_übertragen()
Dim AC As Object, AD As Object
Dim Üblz As Long, Dblz As Long
Dim ÜbNummer As String, Datum As Date
Dim Stand As String  '** wenn unnötig löschen
Set DBasis = Workbooks(DBWb).Worksheets("Datenbasis")
Set ÜBlatt = Workbooks(ÜBWb).Worksheets("Übersichtsblatt")
Üblz = ÜBlatt.Range("A2").End(xlDown).Row
Dblz = DBasis.Range("A2").End(xlDown).Row
'1. Schleife im Übersichtsblatt  (suche Nummer)
For Each AC In ÜBlatt.Range("A2:A" & Üblz)
ÜbNummer = AC.Value        'Nummer laden
Stand = AC.Cells(1, 2)     'Status "passt" laden    'ggf. löschen !!
Datum = AC.Cells(1, "C")   'Datum laden Spalte C
'2. Schleife in Datenbasis  (suche: Nummer)
'alle Zellen mit dieser Nummer werden ersetzt
For Each AD In DBasis.Range("A2:A" & Dblz)
If AD.Value = ÜbNummer Then  'gleiche Nummer
If Stand = "passt" Then      'ggf. löschen  (mit End If)
'nur ersetzen wenn Nummer stimmt + "Erledigt"
If AD.Cells(1, "C") = "Erledigt" Then
AD.Cells(1, "AF") = Datum
AD.Cells(1, "C") = "In Ordnung"
End If
End If
End If
Next AD
Next AC
End Sub

Anzeige
AW: Daten gezielt übertragen anhand von Bedingunge
09.06.2016 10:55:00
Bedingunge
Hallo Piet,
ich danke dir vielmals für deine schnelle Antwort und deinen überarbeiteten Lösungsvorschlag. Du bist echt super!!!!
Ich hätte nun noch ein paar Fragen:
1. Kann ich auch anstatt Const mit Dim/Set starten nach folgendem Schema? Oder kann ich Const auch verwenden wenn meine zweite Const die selbe Datei ist in der ich das Makro schreibe, also ThisWorkbook?
Dim Datenbasis As Workbook
Set Datenbasis= Workbooks.Open("Datenbasis.xlsm")
Dim Pruefung_GR As Workbook
Set Pruefung_GR = ThisWorkbook
2. Bei dem Code Datum = AC.Cells(1, "C") 'Datum laden Spalte C
kommt bei mir folgender Fehler: Laufzeitfehler '13' Typen unverträglich. Woran könnte das liegen? Ich habe in Spalte C Datumsangaben in folgendem Format stehen: 01.01.2015
3. Zu deiner Anmerkung wegen dem Stand passt: Ja das ist richtig so, dass es mit dem Makro mit abgeprüft werden soll. Die Spalte kann auch andere Wörter enthalten und soll aber eben nur bei "passt" die Werte entsprechend übertragen.
4. Jetzt hätte ich noch eine letzte Anmerkung und es ist eine unwichtige Kleinigkeit, aber vlt könntest du mir da auch noch helfen. Könnte man dann das ganze noch umschreiben, dass in dem Übersichtsblatt erst ab A5 durchsucht wird. Ich hab mein Tabellenblatt jetzt entsprechend geändert, dass die Makro Schaltfläche in A1-D4 sind...
Vielen Dank im Voraus!!!
Und ich wünsche einen schönen und erholsamen Urlaub!
Herzliche Grüße
Hilfloser User

Anzeige
AW: Daten gezielt übertragen anhand von Bedingunge
09.06.2016 11:17:25
Bedingunge
Achja, was ich auch noch fragen wollte: Die Excel-Datei, die das Tabellenblatt Datenbasis beinhaltet, ist auch eine Makro-Datei. Wenn ich dann den Code im Tabellenblatt Übersichtsblatt mit F5 durchlaufen lasse lande ich nach dem Schritt mit Set Datenbasis = Workbooks.Open ("Db".xls) in der Makro-Umgebung des Datenbasis Tabellenblatt, was ich aber nicht will. Kannst du mir sagen, woran das liegt?
Vielen Dank und Herzliche Grüße
Hilfloser User

AW: Daten gezielt übertragen anhand von Bedingunge
09.06.2016 12:04:48
Bedingunge
Hallo Piet,
ich arbeite gerade mit deinem Code weiter und bisher funktioniert schon einiges reibungslos!!!!!! Danke vielmals dafür. Leider sind mir jetzt dabei weiter kleinere Herausforderungen aufgefallen.
Update daher zu meinen Fragen!:
1. Habe ich hinbekommen, ich hab das ganze mit Dim und Set ersetzt und funktioniert auch.
2. Bei mir kommt manchmal der Laufzeitfehler 13 wegen "Datum" und wegen "Stand". Ich habe auch herausgefunden warum, Datum kann man einfach lösen mit Formateinstellung aber bei Stand war das Problem, dass manchmal #NV oder sogar leere Werte in den Zellen sind. Hast du vlt. eine Idee, wie man das geschickt lösen kann?
3. Passt ja wie gesagt.
4. Würde mir immer noch weiterhelfen.
5. Jetzt habe ich noch ein letztes sehr großes Problem, und zwar, die Nummern die ich in meinem Übersichtsblatt stehen habe sind alle korrekt. Jedoch enthalten die Vergleichs-Nummern in meinem Datenbasis-Tabellenblatt oft noch ein Leerzeichen vor oder nach der Nummer. Also dann steht oft WI2345*Leerzeichen* und wird mit der WI2345*ohne Leerzeichen* verglichen. Das hat zur Folge, dass das Makro die Werte nicht erkennt. Kannst du mir dabei weiterhelfen?
Ich kann leider wie gesagt NICHTS an dem Datenbasis Tabellenblatt ändern, nur per Makro ansprechen. Kann man es daher vlt. in das Makro einbauen?
Vielen vielen Dank! Ich hoffe du kannst mir weiterhelfen!
Herzliche Grüße
Hilfloser User

Anzeige
AW: Daten gezielt übertragen anhand von Bedingunge
09.06.2016 15:54:04
Bedingunge
Hallo,
viel kann ich nicht mehr tun, zwei Kleinigkeiten fallen mir spontan ein.
Bei Stand kann man die Variable vorher auf Empty setzeh: - Stand = Empty
und vor die For Next Schleife die Anweisung: - On Error Resume Next
Dann wird der Fehler übersprungen! Stand muss aber vorher gelöscht werden,
sonst bleibt der -vorherige Wert- bestehen. Ergibt falsche Auswertung.
ÜbNummer = AC.Value ersetzen durch - Trim(ÜbNummer)
If AD.Value = ÜbNummer Then 'gleiche Nummer ersetzen durch:
If Trim(AD) = ÜbNummer Then 'gleiche Nummer
Durch Trim werden Space vor und nach dem Text abgeschnitten.
Ausnahme das Sonderzeichen 160, Space in Internet Texten.
Dieses spezielle Space wird nicht durch Trim gelöscht!
mfg Piet

Anzeige
AW: Daten gezielt übertragen anhand von Bedingunge
09.06.2016 17:44:29
Bedingunge
Hallo Piet,
ich kann nur eins sagen: DU BIST DER BESTE!!!
Es klappt alles wunderbar, ich bin dir sowas von dankbar!!!
Mit Trim hast du mein allerletztes Problem auch noch gelöst. Noch nie wurde mir in irgendeinem Forum besser geholfen. Beeindruckend!
Ich danke dir vielmals! Ich hoffe wenn ich wieder einmal ein Problem habe, kann mir genauso gut geholfen werden.
Ich wünsch dir einen wunderschönen Urlaub!
Herzliche Grüße
Glücklicher User

AW: Daten gezielt übertragen anhand von Bedingunge
09.06.2016 17:45:45
Bedingunge
Ich weiß leider nicht wie ich den Thread schließen kann, aber mein Problem wurde gelöst und kann geschlossen werden! DANKE!!!

Anzeige
AW: AW: offen gestellt oWt
08.06.2016 23:15:23
Piet
,,,

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige