Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema InputBox
BildScreenshot zu InputBox InputBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Daten von einem Tabellenblatt ins andere übertrage | Herbers Excel-Forum


Betrifft: Daten von einem Tabellenblatt ins andere übertrage von: Dominic
Geschrieben am: 23.07.2012 09:28:48

Hallo Franz!

Es funktioniert alles wunderbar, danke noch mal!
Nachdem ich die Daten wieder in das Eingabetabellenblatt zurückgeholt habe, wird bei neuerlichem Transfer in die Liste eine neue Zeile erstellt(klar, steht ja auch so im Makro:) ). Eigentlich wollte ich durch den Rücktransfer die Daten im Eingabetabellenblatt verändern und danach wieder in die Liste in die selbe Zeile zurückbringen. Ist das möglich?

Grüße Dominic

  

Betrifft: AW: Daten von einem Tabellenblatt ins andere übertrage von: Matze,Matthias
Geschrieben am: 23.07.2012 13:09:50

Hallo Dominic,
Franz hat dir da doch gute Hilfe geleistet, warum schreibst du in dem Beitrag nicht weiter?

Zu deiner Frage: Ich könnte jetzt mal "Ja" sagen, aber ohne einen Codeschnipsel oder Datei ?

Matze


  

Betrifft: AW: Daten von einem Tabellenblatt ins andere übertrage von: Dominic
Geschrieben am: 23.07.2012 13:29:37

hey,

du hast recht, ja er hat mir sehr gute hilfe geleistet. konnte in meinem anderen beitrag leider nicht mehr antworten(war wohl zu alt und an die sache mit dem häckchen hab ich nicht gedacht^^). wollte franz deshalb durch diesen neuen beitrag direkt ansprechen, da er das programm ja geschrieben hat und sich damit sehr gut auskennt.

dominic


  

Betrifft: @Franz,.... von: Matze,Matthias
Geschrieben am: 23.07.2012 13:32:52

Hallo Dominic,
du hast den haken wieder vergessen, grins, ich stelle auf offen,damit Franz das als
aktuellen Hilferuf erkennt.
Matze


  

Betrifft: AW: @Franz,.... von: fcs
Geschrieben am: 23.07.2012 15:20:20

Hallo Dominic,

ich hatte ja schon befürchtet, dass das jetzt auch noch kommt. Hättest du dir aber auch vorher überlegen können.

Du legst für Datensatz-Ändern und Datensatz-Neu besser jeweils eigene Schaltflächen im Eingabeblatt an.
Die Tabellen-Zeilennummer des per Suchen/Doppelklick in Liste gewählten Datensatzes wird dazu in eine Zelle im Eingabeblatt zwischen gespeichert. Auch die Zeile eines neuen Datensatzes wird dort eingetragen. Die Zelladresse für den Wert kannst du im Code anpassen z.Zt ist es F2.

Da viele Zeilen Betroffen/neu sind hab ich diese im Code gekennzeichnet.

Gruß
Franz

'Code in einem allgemeinen Modul der Datei.
Option Explicit

'Zelle mit der ZeilenNummer des zu ändernden Datensates
Private Const strZelleZeilenNr As String = "F2"                        'NEU

Sub DatenSatz_Neu()                    'NEUE PROZEDUR
  Dim rngZelle As Range, lngZeileNeu As Long
  With Worksheets("Liste")
    'nächste freie Zeile in Liste
    Set rngZelle = .Cells.Find(What:="*", after:=.Range("A1"), LookIn:=xlFormulas, _
        lookat:=xlWhole, searchorder:=xlByRows, searchdirection:=xlPrevious)
    If rngZelle Is Nothing Then
      lngZeileNeu = 1
    Else
      lngZeileNeu = rngZelle.Row + 1
    End If
    Worksheets("Eingabe").Range(strZelleZeilenNr) = lngZeileNeu
    Call Eingabe_in_Liste_eintragen(lngZeile:=lngZeileNeu, bolNeu:=True)
  End With
End Sub

Sub DatenSatz_Aendern()                 'NEUE PROZEDUR
  With Worksheets("Eingabe").Range(strZelleZeilenNr)
    If .Value > 0 Then
      Call Eingabe_in_Liste_eintragen(lngZeile:=.Value, bolNeu:=False)
    Else
      MsgBox "Bitte erst einen Datensatz suchen/Neu anlegen"
    End If
  End With
End Sub

Sub Eingabe_in_Liste_eintragen(lngZeile As Long, bolNeu As Boolean) 'GEÄNDERT

  Dim wksEingabe As Worksheet
  Dim wksListe As Worksheet
                                                    'ZEILEN GELÖSCHT
  
  Set wksEingabe = Worksheets("Eingabe")  'Eingabetabellenblatt
  'Tabellenblatt in das die Daten geschrieben werden sollen
  Set wksListe = Worksheets("Liste")
                                                    'ZEILEN GELÖSCHT
  With wksListe
    If bolNeu = True Then                                 'NEU
      'Spalte A - automatisch Nummerieren
      .Cells(lngZeile, 1).Value = Application.WorksheetFunction.Max(.Columns(1)) + 1
    End If                                                'NEU
    .Cells(lngZeile, 2).Value = wksEingabe.Range("B3")
    .Cells(lngZeile, 3).Value = wksEingabe.Range("B5")
    .Cells(lngZeile, 4).Value = wksEingabe.Range("E6")
    .Cells(lngZeile, 5).Value = wksEingabe.Range("B10")
    .Cells(lngZeile, 6).Value = wksEingabe.Range("E10")
    'usw.
    'oder Zellewert und Hyperlink-Infos auslesen/eintragen
    .Cells(lngZeile, 7).Value = wksEingabe.Range("C12").Value
    With wksEingabe.Range("C12")
      If .Hyperlinks.Count > 0 Then
        With .Hyperlinks(1)
          wksListe.Hyperlinks.Add Anchor:=wksListe.Cells(lngZeile, 7), _
                Address:=.Address
          If .SubAddress <> "" Then _
              wksListe.Cells(lngZeile, 7).Hyperlinks(1).SubAddress = .SubAddress
          If .TextToDisplay <> "" Then _
              wksListe.Cells(lngZeile, 7).Hyperlinks(1).TextToDisplay = .TextToDisplay
          If .ScreenTip <> "" Then _
              wksListe.Cells(lngZeile, 7).Hyperlinks(1).ScreenTip = .ScreenTip
        End With
      End If
    End With
  End With
End Sub


Sub SuchwertEingeben()
  Dim varSuchen As Variant
  Dim rngSuchen As Range
  varSuchen = Application.InputBox(Prompt:="Nummer des auszulesenden Zeichensatzes", _
      Title:="Datensatz einlesen", _
      Type:=1)
  If varSuchen <> False Then
    Set rngSuchen = Worksheets("Liste").Columns(1).Find(What:=varSuchen, _
          LookIn:=xlValues, lookat:=xlWhole)
    If rngSuchen Is Nothing Then
       Worksheets("Eingabe").Range(strZelleZeilenNr) = 0                       'NEU
     MsgBox "Datensatz-Nr. """ & varSuchen & """ nicht gefunden!", _
          vbInformation + vbOKOnly, "Datensatz einlesen"
    Else
      Worksheets("Eingabe").Range(strZelleZeilenNr) = rngSuchen.Row          'NEU
      Call Werte_aus_Liste_holen(lngZeile:=rngSuchen.Row)
    End If
  End If
End Sub

Public Sub Werte_aus_Liste_holen(lngZeile As Long)
  Dim wksEingabe As Worksheet
  Dim wksListe As Worksheet
  
  Set wksEingabe = Worksheets("Eingabe")  'Eingabetabellenblatt
  'Tabellenblatt in das die Daten geschrieben werden sollen
  Set wksListe = Worksheets("Liste")
 
  With wksListe
      wksEingabe.Range("B3").Value = .Cells(lngZeile, 2).Value
      wksEingabe.Range("B5").Value = .Cells(lngZeile, 3).Value
      wksEingabe.Range("E6").Value = .Cells(lngZeile, 4).Value
      wksEingabe.Range("B10").Value = .Cells(lngZeile, 5).Value
      wksEingabe.Range("E10").Value = .Cells(lngZeile, 6).Value
      'usw.
    ' Zellewert und Hyperlink-Infos aus Spalte 7 auslesen und in _
          Eingabe-Zelle C12 einfügen
    With wksEingabe.Range("C12")
      If .Hyperlinks.Count > 0 Then .Hyperlinks(1).Delete
      .Value = wksListe.Cells(lngZeile, 7).Value
    End With
    With .Cells(lngZeile, 7)
      If .Hyperlinks.Count > 0 Then
        With .Hyperlinks(1)
          wksEingabe.Hyperlinks.Add Anchor:=wksEingabe.Range("C12"), _
                Address:=.Address
          If .SubAddress <> "" Then _
               wksEingabe.Range("C12").Hyperlinks(1).SubAddress = .SubAddress
          If .TextToDisplay <> "" Then _
              wksEingabe.Range("C12").Hyperlinks(1).TextToDisplay = .TextToDisplay
          If .ScreenTip <> "" Then _
               wksEingabe.Range("C12").Hyperlinks(1).ScreenTip = .ScreenTip
        End With
      End If
    End With
  End With
End Sub




'Code im Modul von Tabellenblatt "Liste"
'Option Explicit

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
  If Target.Column = 1 And IsNumeric(Target) Then
    Worksheets("Eingabe").Range(strZelleZeilenNr) = Target.Row             'NEU
    Call Werte_aus_Liste_holen(lngZeile:=Target.Row)
    Worksheets("Eingabe").Activate
    Cancel = True
  End If
End Sub



  

Betrifft: Danke!! von: Dominic
Geschrieben am: 23.07.2012 16:01:47

Gruß Dominic


Beiträge aus den Excel-Beispielen zum Thema "Daten von einem Tabellenblatt ins andere übertrage"