MS-Office-Forum

Zurück   MS-Office-Forum > Microsoft Office > Microsoft Excel
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads
Themen-Optionen Ansicht
Alt 14.03.2019, 19:53   #1
smag
MOF User
MOF User
Standard VBA - Daten anhand Zeitangabe kopieren

Hallo zusammen,

ich versuche ein Makro zu schreiben, das Daten aus einem Tabellenblatt auf ein anderes kopiert. Das schwierige (für mich) dabei: Die Daten sollen in die Zeile kopiert werden, in der das gleiche Datum steht, das vorher per Hand in eine Zelle geschrieben wurde.

Anschaulicher wird es in der Anlage:

- auf dem Blatt START wird in H17 eine Kalenderwoche im Format 2019-07 eingetragen
- die Daten aus dem Blatt VERARBEITUNG von B2:V2 sollen kopiert werden
- Ziel des Kopierens: Blatt SPA BUDGET, in die Matrix C4:X56, wo das gleiche Datum steht, in diesem Beispiel: D28:X28

Die Spalte bleibt also immer gleich, aber wie bekomme ich es hin, dass die richtige Zeile ausgewählt wird?

Viele Grüße,
smag
Angehängte Dateien
Dateityp: xlsm Tool_V5.xlsm (135,1 KB, 6x aufgerufen)
smag ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 15.03.2019, 04:45   #2
Hajo_Zi
MOF Guru
MOF Guru
Standard

in Tabelle Verarbeitung sehe ich in B2:V2 kein Datum.
Ich vermurte mal Das Dsatum von B2 sol nach D28 kopiert werfden, da dort das gleiche Datum. Warum brauch ich da ein makro, das Datum steht doch schon da.

Im Forum kann der Beitrag als erledigt markiert werden. Also mache es unten links mit Klick auf den Schalter "als erledigt setzen", falls Problem gelöst.
Der Zustand des Beitrages wird dann in der Übersicht angezeigt und man braucht sich diese Beiträge nicht mehr ansehen.

GrußformelHomepage

__________________

Signatur in jedem Beitrag
Bitte Version angeben. Bei keiner Angabe gehe ich von meinen Angaben aus.
Betriebssystem: Windows 10 - 64 Bit, Office 2016 - 32 Bit.
Fragen werden im Forum beantwortet, nicht per PN.
Hajo_Zi ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 15.03.2019, 06:22   #3
TommyDerWalker
MOF User
MOF User
Standard

Hey,

im Grunde habe ich verstanden was Du machen willst.
Das sollte mit .find möglich sein.
Aber das Datum kommt doch öfter vor.
Genau genommen für jeden Artikel (A-Artikel, B-Artikel, C-Artikel) gibt es eine Zeile in der das Datum 2019-7 steht.

Nehme ich richtig an, wenn man Dir das jetzt für Artikel A baut, Du später dann auch noch das gleiche für B & C brauchst ?
Nur statt des Bereichs B2:V2 dann für B3:V3 usw ?

Gruß
Thomas

__________________

Windows10 PRO 64Bit MSOffice32/64Bit --2007/2010/2013/2016/2019--
Eifersucht ist die Leidenschaft, die mit Eifer sucht, was Leiden schafft.
If Not CODE Working Then Goto https://www.ms-office-forum.net/forum/
On Error GoTo Hell
TommyDerWalker ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 15.03.2019, 12:40   #4
smag
Threadstarter Threadstarter
MOF User
MOF User
Standard

Zitat: von TommyDerWalker Beitrag anzeigen

Hey,

im Grunde habe ich verstanden was Du machen willst.
Das sollte mit .find möglich sein.
Aber das Datum kommt doch öfter vor.
Genau genommen für jeden Artikel (A-Artikel, B-Artikel, C-Artikel) gibt es eine Zeile in der das Datum 2019-7 steht.

Nehme ich richtig an, wenn man Dir das jetzt für Artikel A baut, Du später dann auch noch das gleiche für B & C brauchst ?
Nur statt des Bereichs B2:V2 dann für B3:V3 usw ?

Gruß
Thomas

Hey,

ja, das siehst du richtig. Ich brauche das quasi einmal als Beispiel, die anderen Zeilen werden dann in die anderen "Tabellen" kopiert. Also in VERARBEITUNG B2:V2 kommt auf SPA BUDGET --> A-Artikel, die Zeile B3:V3 kommt in die "Tabelle" für B-Artikel, usw. Kannst du mir das mit .find genauer erklären?

Danke + Gruß,
smag
smag ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 15.03.2019, 13:18   #5
smag
Threadstarter Threadstarter
MOF User
MOF User
Standard

Hallo nochmal,
ich bin inzwischen etwas weiter, aber habe jetzt Probleme beim Kopieren selbst... Das ist mein Code bis jetzt:

Code:

    Dim ErgebnisA As Range
    Dim Suchdatum As String
    Suchdatum = Worksheets("START").Range("H56").Value
    
    Set ErgebnisA = Worksheets("SPA Budget").Range("C44:C96").Find(What:=Suchdatum, LookIn:=xlValues)
    
    If ErgebnisA Is Nothing Then
        MsgBox "Datum nicht gefunden - Bitte prüfe deine Eingabe auf der START-Seite!"
    Else
        'hier Befehle für kopieren
        Sheets("Verarbeitung").Select
        Range("B3:V3").Select
        Selection.Copy
        Sheets("SPA Budget").Select
        Cells(ErgebnisA, 4).Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
        
    End If
Es scheitert an der Zeile mit "Cells(ErgebnisA"...

Gruß,
smag
smag ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 15.03.2019, 15:19   #6
Hasso
MOF Meister
MOF Meister
Standard

Hallo smeg,

ändere den Code mal so (die ganzen Selects habe ich auch rausgenommen):
Code:

Dim ErgebnisA As Range
    Dim Suchdatum As String
    Suchdatum = Worksheets("START").Range("H56").Value
    
    Set ErgebnisA = Worksheets("SPA Budget").Range("C44:C96").Find(What:=Suchdatum, LookIn:=xlValues)
    
    If ErgebnisA Is Nothing Then
        MsgBox "Datum nicht gefunden - Bitte prüfe deine Eingabe auf der START-Seite!"
    Else
        'hier Befehle für kopieren
        Sheets("Verarbeitung").Range("B3:V3").Copy
        Sheets("SPA Budget").Cells(ErgebnisA.Rows, 4).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
        
    End If

__________________

Gruß Hasso

Programmers don't die, they just GOSUB without RETURN

System Windows 7 Enterprise 64, Office 2013
Wenn dir mein Beitrag gefallen hat, kannst du ihn bewerten (mit dem Symbol links unten)
Hasso ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 15.03.2019, 15:41   #7
smag
Threadstarter Threadstarter
MOF User
MOF User
Standard

Hey,

das ist jetzt mein Code:

Code:

Sub test()
Dim ErgebnisWertA As Range
Dim Suchdatum As String

' Datum erfassen
    Suchdatum = Worksheets("START").Range("H56").Value

' Zeilen der jeweiligen Matrix suchen
    Set ErgebnisWertA = Worksheets("SPA Budget").Range("C280:C332").Find(What:=Suchdatum, LookIn:=xlValues)
    
' Wenn kein Ergebnis gefunden wird, dann Fehlermeldung ausgeben und Sub verlassen, ansonsten Aufforderung, die richtige Liste zu wählen
    If ErgebnisWertA Is Nothing Then
        MsgBox "Datum nicht gefunden - Bitte prüfe deine Eingabe auf der START-Seite!"
        Exit Sub
    Else
        MsgBox "Bitte wähle jetzt die Liste der aktuellen KW!"
    End If
    
    
    Sheets("Überblick").Range("B55:V55").Copy
    Sheets("SPA Budget").Cells(ErgebnisWertA.Rows, 4).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
End Sub
Bekomme leider die Meldung: Typen unverträglich in der vorletzten Zeile "Sheets("SPA......"

Noch eine Idee?

Gruß,
smag

PS: Ja, es ist Absicht, dass sich die Tabellennamen und der Kopierbereich geändert haben ;-)
smag ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 15.03.2019, 15:56   #8
Hasso
MOF Meister
MOF Meister
Standard

Hallo smag,

als erstes hast du einen Fehler in dem Code. Es muss heißen:
Code:

Sheets("SPA Budget").Cells(ErgebnisWertA.Row, 4).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, Transpose:=False
Bei dir stand da ErgebnisWertA.Rows, 4).
Außerdem hattest du in dem Paste-Befehl SkipBlanks := False drin, deine Range enthält aber nur Blanks. Nachdem ich das rausgenommen hatte, wurde auch kopiert.

__________________

Gruß Hasso

Programmers don't die, they just GOSUB without RETURN

System Windows 7 Enterprise 64, Office 2013
Wenn dir mein Beitrag gefallen hat, kannst du ihn bewerten (mit dem Symbol links unten)
Hasso ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 15.03.2019, 16:23   #9
smag
Threadstarter Threadstarter
MOF User
MOF User
Standard

Jep, het geklappt. Vielen Dank!
smag ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:29 Uhr.



Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.

Copyright ©2000-2018 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günter Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.