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

Inhalte einfügen über Datumseingabe

Inhalte einfügen über Datumseingabe
Franky
Hallo zusammen!
so, ich habe mit diesem Excelproblem mal wieder ein Leckerbissen für alle VBA-Freunde.
In meiner Beispiel-Tabelle: https://www.herber.de/bbs/user/75715.xlsm
soll nach dem Start des Makros eine InputBox angezeigt werden mit dem Hinweis:
("Bitte geben Sie das Datum ein")
Nach der Eingabe des Datums vergleicht das Makro in der Mastertabelle die Datumswerte
in der Spalte A.
Bei einem Treffer kopiert er die entsprechende Zeile. (z. B.: 14.07.2011 -> Bereich von B15:H15)
und fügt Sie als "Inhalte einfügen....Werte" in die Zieltabelle ein, da sich in der Mastertabelle Formeln befinden,
die ich aber der Einfachheit weggelassen habe.
Wenn ich das Manuell mache, sieht das dann so aus:
Sub Inhalte_einfügen()
' Inhalte_einfügen Makro
Range("B15:H15").Select
Selection.Copy
Sheets("Zieltabelle").Select
Range("B15").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub

Dieses unvollständige Makro soll so erweitert werden, das eine Message-Box erscheint:
1. wenn kein Treffer gefunden wurde: "Falsches Datum! - Keine Werte wurden übertragen"
2. wenn die Werte kopiert wurden: "Die Werte wurden erfolgreich übertragen !"
Ferner sollen in der Zieltabelle alle NullWerte durch Leerzeichen ersetzt werden.
Ich bedanke mich im voraus für die schnelle Hilfe
Franky

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Inhalte einfügen über Datumseingabe
14.07.2011 21:11:13
Josef

Hallo Franky,
probier mal.
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Sub Inhalte_einfügen()
  Dim lngDate As Long
  Dim vntRet As Variant, vntTarget As Variant
  
  lngDate = Application.InputBox("Bitte Datum eingeben", "Daten Kopieren", _
    Format(Date, "dd.MM.yyyy"), Type:=1)
  
  With Sheets("Mastertabelle")
    If IsDate(CDate(lngDate)) Then
      vntRet = Application.Match(lngDate, .Columns(1), 0)
      If IsNumeric(vntRet) Then
        vntTarget = Application.Match(lngDate, Sheets("Zieltabelle").Columns(1), 0)
        If IsNumeric(vntTarget) Then
          .Range(.Cells(vntRet, 2), .Cells(vntRet, 8)).Copy
          Sheets("Zieltabelle").Cells(vntTarget, 2).PasteSpecial xlPasteValues
          Application.CutCopyMode = False
          Sheets("Zieltabelle").Range(Sheets("Zieltabelle").Cells(vntTarget, 2), _
            Sheets("Zieltabelle").Cells(vntTarget, 8)).Replace What:="0", _
            Replacement:="", LookAt:=xlWhole, SearchOrder:=xlByRows, _
            MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
        Else
          MsgBox "Datum in Mastertabelle nicht gefunden", vbExclamation, "Hinweis"
        End If
      Else
        MsgBox "Datum in Mastertabelle nicht gefunden", vbExclamation, "Hinweis"
      End If
    Else
      MsgBox "Datumseingabe ungültig!", vbExclamation, "Hinweis"
    End If
  End With
  
End Sub



« Gruß Sepp »

Anzeige
AW: Inhalte einfügen über Datumseingabe
14.07.2011 21:30:18
Franky
Hallo Josef,
ich bin total begeistert !! - Läuft super !! - Echt spitze !!
Vielen Dank
Franky
AW: Inhalte einfügen über Datumseingabe
14.07.2011 21:44:12
Josef

Hallo Franky,
probier mal.
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Sub Inhalte_einfügen()
  Dim lngDate As Long
  Dim vntRet As Variant, vntTarget As Variant
  
  lngDate = Application.InputBox("Bitte Datum eingeben", "Daten Kopieren", _
    Format(Date, "dd.MM.yyyy"), Type:=1)
  
  With Sheets("Mastertabelle")
    If IsDate(CDate(lngDate)) Then
      vntRet = Application.Match(lngDate, .Columns(1), 0)
      If IsNumeric(vntRet) Then
        vntTarget = Application.Match(lngDate, Sheets("Zieltabelle").Columns(1), 0)
        If IsNumeric(vntTarget) Then
          .Range(.Cells(vntRet, 2), .Cells(vntRet, 8)).Copy
          Sheets("Zieltabelle").Cells(vntTarget, 2).PasteSpecial xlPasteValues
          Application.CutCopyMode = False
          Sheets("Zieltabelle").Range(Sheets("Zieltabelle").Cells(vntTarget, 2), _
            Sheets("Zieltabelle").Cells(vntTarget, 8)).Replace What:="0", _
            Replacement:="", LookAt:=xlWhole, SearchOrder:=xlByRows, _
            MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
        Else
          MsgBox "Datum in Mastertabelle nicht gefunden", vbExclamation, "Hinweis"
        End If
      Else
        MsgBox "Datum in Mastertabelle nicht gefunden", vbExclamation, "Hinweis"
      End If
    Else
      MsgBox "Datumseingabe ungültig!", vbExclamation, "Hinweis"
    End If
  End With
  
End Sub



« Gruß Sepp »

Anzeige
Oups, das war ich nicht! ;-)))))
14.07.2011 21:44:50
Josef
« Gruß Sepp »

AW: Oups, das war ich nicht! ;-)))))
14.07.2011 21:55:30
Reinhard
Hallo Sepp,
du bist gut drauf, was rauchst du, kann ich da was abhaben? *ggg*
Wenn es aber was reales ist, who the fuck is Alice usw....
Stimmt der Code nicht? Ein kleiner Hinweis und ich weiß daß ich da suchen muß-
Passt er nicht zur Anfrage? Ein kleiner Hinweis und ich weiß daß ich da suchen muß-
Wenn beides nicht, was hab ich wieder mal nicht kapiert?
Gruß ^ Danke
Reinhard
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige