Microsoft Excel

Herbers Excel/VBA-Archiv

Daten in zweiter Tabelle mit Datum sichern | Herbers Excel-Forum


Betrifft: Daten in zweiter Tabelle mit Datum sichern von: Fritz_W
Geschrieben am: 21.02.2012 16:57:53



Hallo Forumsbesucher,

per Makroaufzeichnung habe ich bisher Daten aus der 'Tabelle1' in die Tabelle 'Ergebnisse' übertragen (kopiert und unformatiert in Tabelle 'Ergebnisse' eingefügt).

Inhalt aus 'Tabelle1 O3' nach 'Ergebnisse B3'
Zellinhalt aus 'Tabelle B4:D19 ' nach 'Ergebnisse B4:G19

Meine nun weitergehenderen Vorstellungen lassen sich mit der Makroaufzeichnung nicht realisieren, so dass ich um eure Hilfe bitte.

Es sollte nunmehr zusätzlich in Zeile 1 also in die Zelle B1 der Tag, in Zeile 2, und in B2 die Uhrzeit des Kopiervorgangs eingetragen werden.
Bei einer erneuten Speicherung sollte der Kopiervorgang in Tabelle 'Ergebnisse' entsprechend nach rechts weitergeführt werden, beginnend immer mit der ersten leeren Spalte, die letzte (8. Speicherung) würde dann in die Spalten W bis Y erfolgen.

Für eure Hilfe danke ich im Voraus.

Viele Grüße
Fritz

  

Betrifft: AW: Daten in zweiter Tabelle mit Datum sichern von: marcl
Geschrieben am: 22.02.2012 06:50:10

Guten Morgen Fritz,

versuche mal das hier:

Sub kopieren()
    Dim zeilencounter As Integer
    Dim spaltencounter As Integer
    Dim benutzteSpalte As Integer
    ' auslesen, wie viele Spalten im Blatt schon verwendet wurden
    benutzteSpalte = Sheets("Ergebnisse").UsedRange.Columns.Count
    ' wenn das erste mal bereits ausgeführt wurde, jeweils eine Spalte weiter als verwednete
    If benutzteSpalte <> 1 Then benutzteSpalte = benutzteSpalte + 1
    ' Kopiervorgang für Zelle O3
    Sheets("Ergebnisse").Cells(3, 1 + benutzteSpalte) = Sheets("Tabelle1").Cells(3, 15)
    ' EInfügen des Datums und Uhrzeit
    Sheets("Ergebnisse").Cells(1, 1 + benutzteSpalte) = Date
    Sheets("Ergebnisse").Cells(2, 1 + benutzteSpalte) = Time
    ' Schleife zum Kopieren der Zellen B4 bis G19
    For zeilencounter = 4 To 19
        For spaltencounter = 1 To 5
           Sheets("Ergebnisse").Cells(zeilencounter, spaltencounter + benutzteSpalte) = Sheets(" _
Tabelle").Cells(zeilencounter, spaltencounter + 1)
        Next spaltencounter
    Next zeilencounter
End Sub
Gruß
marcl


  

Betrifft: AW: Daten in zweiter Tabelle mit Datum sichern von: Fritz_W
Geschrieben am: 22.02.2012 08:18:42

Hallo marcl,

toll, dass Du mir Deine Unterstützung anbietest, vielen Dank.

Der Code müsste wohl bei der folgenden Anweisung einen Fehler enthalten, leider kann ich selbst nicht feststellen, woran das liegt:

For spaltencounter = 1 To 5
Sheets("Ergebnisse").Cells(zeilencounter, spaltencounter + benutzteSpalte) = Sheets(" _
Tabelle ").Cells(zeilencounter, spaltencounter + 1)"

Könntest Du das nochmal überprüfen.

Viele Grüße
Fritz


  

Betrifft: AW: Daten in zweiter Tabelle mit Datum sichern von: marcl
Geschrieben am: 22.02.2012 08:29:44

Gerne doch,

was funktioniert denn da nicht? Bei mir klappt das. Ist vielleicht der Tabellenname falsch?

Gruß
marcl


  

Betrifft: AW: Daten in zweiter Tabelle mit Datum sichern von: Fritz_W
Geschrieben am: 22.02.2012 08:38:08

Hallo marcl,

ich habe den Code kopiert und in ein Modul eingefügt, da wurde bereits dieser Teil rot eingefärbt:

Sheets("Ergebnisse").Cells(zeilencounter, spaltencounter + benutzteSpalte) = Sheets(" _
Tabelle ").Cells(zeilencounter, spaltencounter + 1)"

Gruß
Fritz

P.S. Kann es allein am fettgedruckten Tabellennamen liegen? Muss wohl Tabelle1 lauten?


  

Betrifft: AW: Daten in zweiter Tabelle mit Datum sichern von: marcl
Geschrieben am: 22.02.2012 09:01:36

hm, wenn der Satz rot gefärbt ist, liegt ein Syntaxfehler vor.

schreibe mal alles in eine Zeile und das " am Ende muss weg. Der _ kann auch weg. Sollte Sheets("Tabelle") lauten. Ob das Blatt Tabelle oder Tabelle1 lautet, liegt an Deiner Datei.

gruß
marcl


  

Betrifft: AW: Daten in zweiter Tabelle mit Datum sichern von: Fritz_W
Geschrieben am: 22.02.2012 09:24:15

Hallo marcl,

vielen Dank für die weitere Hilfe.
Hatte selbst eben genau das obige getan und damit das Makro auch zum Laufen gebracht.

Die Einfügung erfolgt jedoch nicht so wie vorgesehen: Der Wert aus Tabelle1 O3 wurde nach Ergebnisse AA3 (anstatt B3) kopiert. Entsprechend befand sich Datum in AA1 (statt in B1), die Uhrzeit in AA2 statt in B2 der Tabelle Ergebnisse.

Viele Grüße
Fritz


  

Betrifft: AW: Daten in zweiter Tabelle mit Datum sichern von: marcl
Geschrieben am: 22.02.2012 09:36:21

Ich lasse die verwendeten Spalten auslesen. Wird nach der 8. Aufbereitung der Inhalt überschrieben? Dann könnten man vorher den ganzen Tabelleninhalt löschen.

If Cells(1, 25) <> "" Then Cells.ClearContents

Gruß
marcl


  

Betrifft: AW: Daten in zweiter Tabelle mit Datum sichern von: Fritz_W
Geschrieben am: 22.02.2012 09:47:12

Hallo marcl,

vielen Dank für den Hinweis. Tatsächlich möchte ich nach dem 8 Kopiervorgang löschen und erneut - bis zu 8x kopieren. Werde versuchen, das wie beschrieben umzusetzen. Muß aber jetzt kurz weg und melde mich deshalb ggf. zu einem späteren Zeitpunkt nochmal.

Bis dahin viele Grüße
Fritz


  

Betrifft: AW: Daten in zweiter Tabelle mit Datum sichern von: marcl
Geschrieben am: 22.02.2012 09:59:51

Sub kopieren()
           Dim zeilencounter As Integer
           Dim spaltencounter As Integer
           Dim benutzteSpalte As Integer
           ' wenn Y1 nicht leer ist, Inhalt löschen
           If Cells(1, 25) <> "" Then Cells.ClearContents
           ' auslesen, wie viele Spalten im Blatt schon verwendet wurden
           benutzteSpalte = Sheets("Ergebnisse").UsedRange.Columns.Count
           ' wenn das erste mal bereits ausgeführt wurde, jeweils eine Spalte weiter als  _
verwednete
           If benutzteSpalte <> 1 Then benutzteSpalte = benutzteSpalte + 1
           ' Kopiervorgang für Zelle O3
           Sheets("Ergebnisse").Cells(3, 1 + benutzteSpalte) = Sheets("Tabelle1").Cells(3, 15)
           ' EInfügen des Datums und Uhrzeit
           Sheets("Ergebnisse").Cells(1, 1 + benutzteSpalte) = Date
           Sheets("Ergebnisse").Cells(2, 1 + benutzteSpalte) = Time
           ' Schleife zum Kopieren der Zellen B4 bis G19
           For zeilencounter = 4 To 19
               For spaltencounter = 1 To 5
                  Sheets("Ergebnisse").Cells(zeilencounter, spaltencounter + benutzteSpalte) =  _
Sheets(" _
       Tabelle").Cells(zeilencounter, spaltencounter + 1)
               Next spaltencounter
           Next zeilencounter
       End Sub



  

Betrifft: AW: Daten in zweiter Tabelle mit Datum sichern von: Fritz_W
Geschrieben am: 22.02.2012 11:56:32

Hallo marcl,

vielen (!!!) Dank für Deine weitere Unsterstützung und die Geduld.

Leider funktioniert das immer noch nicht wie gewünscht.
Dachte, dass der Grund darin liegen könnte, dass statt Y1 die Zelle W1 gemeint sein müsste.
Daraufhin hab ich den Code wie folgt geändert:

' wenn W1 nicht leer ist, Inhalt löschen
If Cells(1, 23) <> "" Then Cells.ClearContents

Leider brachte auch das nicht den gewünschten Erfolg, es wird nach wie vor in der Tabelle 'Ergebnisse' munter weiter spaltenweise nach rechts eingefügt.

Woran liegts?

Hab inzwischen fast schon ein schlechtes Gewissen (da ich gleich noch gerne etwas ändern würde: )
Ich beabsichtige in die Tabelle 3 zusätzliche Spalten vor die Spalte A einzufügen, so dass sich dort der zu aus Tabelle1 zu kopierende Zellbereich sich entsprechend ändert: statt B4:D19 wäre das E4:G19

Wenn man du das entsprechend ändern könntest, wärs gut.

Viele Grüße
Fritz


  

Betrifft: AW: Daten in zweiter Tabelle mit Datum sichern von: marcl
Geschrieben am: 22.02.2012 12:48:22

If Cells(1, 23) <> "" Then Cells.ClearContents
muss gleich oben unter den Zeilen mit Dim .... stehen. In meiner Testdatei funktioniert das einwandfrei.
Und wo ist Tabelle3? In meinem Code habe ich nur Tabelle, Tabelle1 und Ergebnisse stehen. Welche ist denn gemeint?


  

Betrifft: AW: Daten in zweiter Tabelle mit Datum sichern von: Fritz_W
Geschrieben am: 22.02.2012 13:15:28

Hallo marcl,

werds gleich testen, Tabelle 3 war ein Flüchtigkeitsfehler, sollte heißen in Tabelle1 3 zusätzliche Spalten,
aber inzwischen glaub ich, dass ich das selbst hinbekomme. Meld mich gleich nochmal!

Einstweilen Dank
und Gruß
Fritz


  

Betrifft: AW: Daten in zweiter Tabelle mit Datum sichern von: Fritz_W
Geschrieben am: 22.02.2012 14:25:19

Hallo marcl,

seltsame Geschichte, alles funktioniert, nur es wird munter weiter nach rechts eingefügt.
Habe eine neue Beispieldatei angefertigt, die ich hier beifüge.
Das seltsame ist, er machte in der Spalte weiter, wo er in der Originaldatei zuletzt aufgehört hatte.
Mittlerweile bin ich so etwa in Spalte BQ gelandet.
Selbst nach einem Neustart von Excel hat er das munter fortgesetzt. Nur ein Neustart des Rechners hab ich noch nicht getestet.

Ich bin mit meinem Latein am Ende.

Test mal auf deinem Rechner mittels der angehängten Datei.

Nochmals Dank für Deine Arbeit

Gruß
Fritz

https://www.herber.de/bbs/user/79032.xlsm


  

Betrifft: AW: Daten in zweiter Tabelle mit Datum sichern von: marcl
Geschrieben am: 23.02.2012 07:49:15

Ich habe leider keine Möglichkeit, Dateien auf die Rechner zu laden. Schicke mir bitte Deinen Code zu. Ich werde das dann mal in meinen Dateien testen


  

Betrifft: AW: Daten in zweiter Tabelle mit Datum sichern von: marcl
Geschrieben am: 23.02.2012 07:49:22

Ich habe leider keine Möglichkeit, Dateien auf die Rechner zu laden. Schicke mir bitte Deinen Code zu. Ich werde das dann mal in meinen Dateien testen


  

Betrifft: AW: Daten in zweiter Tabelle mit Datum sichern von: Fritz_W
Geschrieben am: 23.02.2012 08:16:48


Hallo marcl,
in der hochgeladenen Beispieldatei befindet sich lediglich ein Modul mit dem beigefügten Code:

Sub kopieren()
              Dim zeilencounter As Integer
              Dim spaltencounter As Integer
              Dim benutzteSpalte As Integer
              ' wenn Y1 nicht leer ist, Inhalt löschen
              If Cells(1, 23) <> "" Then Cells.ClearContents
              ' auslesen, wie viele Spalten im Blatt schon verwendet wurden
              benutzteSpalte = Sheets("Ergebnisse").UsedRange.Columns.Count
              ' wenn das erste mal bereits ausgeführt wurde, jeweils eine Spalte weiter als  _
verwednete
              If benutzteSpalte <> 1 Then benutzteSpalte = benutzteSpalte + 1
              ' Kopiervorgang für Zelle O3
              Sheets("Ergebnisse").Cells(3, 1 + benutzteSpalte) = Sheets("Tabelle1").Cells(3,  _
15)
              ' Einfügen des Datums und Uhrzeit
              Sheets("Ergebnisse").Cells(1, 1 + benutzteSpalte) = Date
              Sheets("Ergebnisse").Cells(2, 1 + benutzteSpalte) = Time
              ' Schleife zum Kopieren der Zellen B4 bis G19
              For zeilencounter = 4 To 19
                  For spaltencounter = 1 To 5
                     Sheets("Ergebnisse").Cells(zeilencounter, spaltencounter + benutzteSpalte)  _
= Sheets("Tabelle1").Cells(zeilencounter, spaltencounter + 1)
                  Next spaltencounter
              Next zeilencounter
          End Sub
Gruß
Fritz


  

Betrifft: AW: Daten in zweiter Tabelle mit Datum sichern von: marcl
Geschrieben am: 23.02.2012 09:19:51

Recht hast Du,

ändere mal die Zeile wie folgt ab:

If Cells(1, 23) <> "" Then Cells.Delete Shift:=xlUp ' nicht Cells.ClearContents

Bei mir funktioniert das so besser.

Gruß
marcl


  

Betrifft: AW: Daten in zweiter Tabelle mit Datum sichern von: Fritz_W
Geschrieben am: 23.02.2012 13:06:20

Hallo marcl,

ich hab mittlerweile umfassend getestet, mit - für mich - erstaunlichen und nicht erklärbaren Ergebnissen.
Zunächst hab ich die hochgeladene Beispieldatei auf einem zweiten PC (Excel 2007 und Windows XP) mit dem korrigierten Code getestet: Dabei wurde der vollständig beschriebene Zellbereich gelöscht, wenn die Zelle W1 nicht leer war. Eingefügt wurde aber weiterhin in Fortsetzung der vorhergehenden Eintragung immer schön spaltenmäßig weiter nach rechts (obwohl ich den letzten Eintrag gelöscht hatte, echt seltsam.

Dann habe ich das Ganze in einer neu angefertigten Beispieldatei (am ursprünglich verwendeten PC) unter Excel 2010 und Windows 7 getestet. Jetzt ergab sich im Vergleich zu den Tests mit dem alten Code überhaupt keine Änderung: Der Zellbereich wurde - auch wenn Zelle W1 nicht leer war - nicht gelöscht. Gleichzeitig wurden auch hier die neuen Daten (spaltenmäßig) jeweils immer weiter nach rechts eingefügt.

Wenn Du dafür eine Erklärung hast, dann lass mich das wissen, andernfalls möchte ich Dir in dieser Sache aber weitere Arbeit ersparen. Vielleicht erhalte ich anderweitig noch eine Erklärung für dieses Phänomen.

Nochmals vielen Dank für alles.

mfg
Fritz


  

Betrifft: AW: Daten in zweiter Tabelle mit Datum sichern von: Fritz_W
Geschrieben am: 23.02.2012 13:06:25

Hallo marcl,

ich hab mittlerweile umfassend getestet, mit - für mich - erstaunlichen und nicht erklärbaren Ergebnissen.
Zunächst hab ich die hochgeladene Beispieldatei auf einem zweiten PC (Excel 2007 und Windows XP) mit dem korrigierten Code getestet: Dabei wurde der vollständig beschriebene Zellbereich gelöscht, wenn die Zelle W1 nicht leer war. Eingefügt wurde aber weiterhin in Fortsetzung der vorhergehenden Eintragung immer schön spaltenmäßig weiter nach rechts (obwohl ich den letzten Eintrag gelöscht hatte, echt seltsam.

Dann habe ich das Ganze in einer neu angefertigten Beispieldatei (am ursprünglich verwendeten PC) unter Excel 2010 und Windows 7 getestet. Jetzt ergab sich im Vergleich zu den Tests mit dem alten Code überhaupt keine Änderung: Der Zellbereich wurde - auch wenn Zelle W1 nicht leer war - nicht gelöscht. Gleichzeitig wurden auch hier die neuen Daten (spaltenmäßig) jeweils immer weiter nach rechts eingefügt.

Wenn Du dafür eine Erklärung hast, dann lass mich das wissen, andernfalls möchte ich Dir in dieser Sache aber weitere Arbeit ersparen. Vielleicht erhalte ich anderweitig noch eine Erklärung für dieses Phänomen.

Nochmals vielen Dank für alles.

mfg
Fritz


  

Betrifft: AW: Daten in zweiter Tabelle mit Datum sichern von: marcl
Geschrieben am: 23.02.2012 13:19:46

Hallo Fritz,

ich habe keine Ahnung.

https://www.herber.de/bbs/user/79045.xls

Hier mal meine Datei. Die funktioniert bei mir tadellos. Nach 8 Einträgen wird alles gelöscht und die Eintragungen beginnen von vorne. Wenn das bei Dir auch nicht funktioniert, kann ich Dir leider nicht weiter helfen :-(

Gruß
marcl


  

Betrifft: AW: Daten in zweiter Tabelle mit Datum sichern von: Fritz_W
Geschrieben am: 23.02.2012 15:22:30

Hallo marcl,

hab die hochgeladene auf beiden PCs getestet, mit bekanntem Ergebnis.
Das Kopieren wird in der Tabelle'Ergebnisse' immer nach rechts fortgesetzt, auch nach dem Löschvorgang.
Falls ich noch (weitere) entscheidende Erkenntnisse gewinne, meld ich mich, ansonsten besten Dank für Deine Unterstützung.

mfg
Fritz


  

Betrifft: AW: Daten in zweiter Tabelle mit Datum sichern von: marcl
Geschrieben am: 24.02.2012 06:26:09

Guten Morgen Fritz,
so schnell gebe ich nicht auf. Hier ein anderer Ansatz, um die beschrioebenen Zellen zu ermitteln.

https://www.herber.de/bbs/user/79060.xls

Gruß
marcl


  

Betrifft: AW: Daten in zweiter Tabelle mit Datum sichern von: Fritz_W
Geschrieben am: 24.02.2012 10:55:49

Hallo marcl,

bist ein richtiger 'Kämpfer', das freut mich.
So sehr ich mich über solch instensive Unterstützung freue, so würde ich natürlich auch verstehen, wenn bei solchen Projekten ein Helfer auch mal 'das Handtuch wirft'.

Hab getestet:
Bei mir wird bei jedem Kopiervorgang immer in den ersten Bereich von Tabelle 'Ergebnisse' kopiert, also jeweils der vorherige Eintrag überschrieben.
Ist das bei Dir nicht der Fall?

Viele Grüße
Fritz


  

Betrifft: AW: Daten in zweiter Tabelle mit Datum sichern von: marcl
Geschrieben am: 24.02.2012 11:06:29


Ups,

bei mir nicht. Ich weiß ja auch nicht so genau, wie Deine Oberfläche in VBA aussieht. Also wenn Du mit der Maus in das Sub klickst, kannst Du mit der Taste F8 das ganze in Einzelschrtitten durchgehen. Dabei könntest Du feststellen, ob meine If Abfragen auch korrekt abgearbeitet werden.
Eine andere Möglichkeit wären noch die Verweise in VBA. Wenn Du bei Extras > Verweise schaust, sollten folgende Haken gesetzt sein:
Visual Basic For Applications
Microsoft Excel 12.0 Objekt Library (Bei Excel 2007, die Zahl ist je nach Version unterschiedlich)
Microsoft Office 12.0 Object Library
Microsoft Scripting Runtime
Microsoft Forms 2.0 Object Library

Vielleicht liegt es ja daran....


Gruß
marcl


  

Betrifft: AW: Daten in zweiter Tabelle mit Datum sichern von: marcl
Geschrieben am: 24.02.2012 11:06:38


Ups,

bei mir nicht. Ich weiß ja auch nicht so genau, wie Deine Oberfläche in VBA aussieht. Also wenn Du mit der Maus in das Sub klickst, kannst Du mit der Taste F8 das ganze in Einzelschrtitten durchgehen. Dabei könntest Du feststellen, ob meine If Abfragen auch korrekt abgearbeitet werden.
Eine andere Möglichkeit wären noch die Verweise in VBA. Wenn Du bei Extras > Verweise schaust, sollten folgende Haken gesetzt sein:
Visual Basic For Applications
Microsoft Excel 12.0 Objekt Library (Bei Excel 2007, die Zahl ist je nach Version unterschiedlich)
Microsoft Office 12.0 Object Library
Microsoft Scripting Runtime
Microsoft Forms 2.0 Object Library

Vielleicht liegt es ja daran....


Gruß
marcl


  

Betrifft: AW: Daten in zweiter Tabelle mit Datum sichern von: marcl
Geschrieben am: 24.02.2012 11:06:55


Ups,

bei mir nicht. Ich weiß ja auch nicht so genau, wie Deine Oberfläche in VBA aussieht. Also wenn Du mit der Maus in das Sub klickst, kannst Du mit der Taste F8 das ganze in Einzelschrtitten durchgehen. Dabei könntest Du feststellen, ob meine If Abfragen auch korrekt abgearbeitet werden.
Eine andere Möglichkeit wären noch die Verweise in VBA. Wenn Du bei Extras > Verweise schaust, sollten folgende Haken gesetzt sein:
Visual Basic For Applications
Microsoft Excel 12.0 Objekt Library (Bei Excel 2007, die Zahl ist je nach Version unterschiedlich)
Microsoft Office 12.0 Object Library
Microsoft Scripting Runtime
Microsoft Forms 2.0 Object Library

Vielleicht liegt es ja daran....


Gruß
marcl


  

Betrifft: AW: Daten in zweiter Tabelle mit Datum sichern von: Fritz_W
Geschrieben am: 24.02.2012 12:01:36

Hallo marcl,

bin den Code mit F8 durchgegangen. Dabei sind wurden nicht alle Anweisungen angesprungen.
Bei 'Extras - Verweise' hab ich daraufhin die 'fehlenden Haken' vor
Microsoft Scripting Runtime und Mircosoft Forms 2.0 Ojekt Library gesetzt.

Leider ohne dass dadurch etwas behoben werden konnte.
Tut mir leid.
Werd das noch am zweiten PC unter Excel 2007 untersuchen, komme aber heute leider nicht mehr dazu.
Falls es Neuigkeiten gibt, melde ich mich morgen nochmals.

Vielen Dank und viele Grüße.
Fritz


  

Betrifft: @marcl von: Fritz_W
Geschrieben am: 25.02.2012 09:00:57

Hallo marcl,


ich habe nun Deine Beispieldatei nun auf dem zweiten PC (Excel 2007/Windows XP) getestet:
Funktioniert - im Gegensatz zum Test mit Excel 2010 unter Win7 - genau wie es sein sollte.
Also muss das doch was mit der Konfiguration zu tun haben.
Auf jeden Fall kann ich dann auf dem zweiten Rechner arbeiten, das genügt mir vollkommen.
Irgendwann werd ich auch sicherlich erfahren bzw. herausfinden, worauf das seltsame Verhalten bei Excel 2010 zurückzuführen ist.

Dein Einsatz hat sich nun auf jeden Fall gelohnt, ein nochmaliger Dank und ein schönes WE

Gruß
Fritz


Beiträge aus den Excel-Beispielen zum Thema "Daten in zweiter Tabelle mit Datum sichern"