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

Daten aus Tabellenblatt1 je nach Bezug in andere T

Daten aus Tabellenblatt1 je nach Bezug in andere T
02.02.2019 07:38:21
Stefan
Hallo, ich grüble an einem Problem und bei meiner Suche in den Foren habe ich leider bis jetzt noch nicht die Lösung gefunden aber die Erkenntnis, dass ich mich wohl mit VBA befassen sollte.
Aber hier die Frage, für die ich hoffe, eine Lösung zu bekommen:
Ich möchte bestimmt Daten aus Tabellenblatt 1 je nach Bezug in ein anderes Tabellenblatt kopieren. Das ist die Hauptliste, die täglich weitere Daten erhält:
Datum Text Betrag Kunden
05.01.2019 Text 200 Kunde C
04.01.2019 Text 200 Kunde A
04.01.2019 Text 180 Kunde B
03.01.2019 Text 200 Kunde A
02.01.2019 Text 350 Kunde C
02.01.2019 Text 150 Kunde A
Und ich möchte je Kunde ein eigenes Tabellenblatt, dass sich mit jeder weiteren neuen Eingabe entsprechend aktualisiert und wie folgt aussehen soll:
Tabellenblatt Kunde A
Datum Text Betrag
04.01.2019 Text 200
03.01.2019 Text 200
02.01.2019 Text 150
Und das entsprechend für Kunde A-C. Es werden max. 10 Kunden werden
Ich hoffe, ich konnte meinen Wunsch verständlich erklären und danke im Voraus für Eure Hilfe und Tipps
Vielen Dank und viele Grüße
Stefan

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Daten aus Tabellenblatt1 je nach Bezug in andere T
02.02.2019 07:43:25
Sepp
Hallo Stefan,
zwei Fragen dazu.
  • Was soll die Übertragung der Daten auslösen?
  • Sollen die Daten nach der Übertragung im Hauptblatt gelöscht werden?

 ABCDEF
1Gruß Sepp
2
3

Anzeige
AW: Daten aus Tabellenblatt1 je nach Bezug in andere T
02.02.2019 08:00:12
Stefan
Hallo und guten Morgen Sepp,
ich hoffe ich verstehe die erste Frage richtig.
Ich möchte für jeden Kunden ein laufendes, tagesaktuelles Kundeblatt. Also der reine Name "KundeA" oder "KundeB" soll die Übertragung auslösen. Und noch kurz zur Erklärung: "Text" meint einfach eine weitere Info zur Bestellung ohne Möglichkeit danach zu filtern oder zuzugreifen
Und die Daten im Hauptblatt sollen bestehen bleiben
Danke + Gruß
Stefan
AW: Daten aus Tabellenblatt1 je nach Bezug in andere T
02.02.2019 08:24:45
Sepp
Hallo Stefan,
in das Modul des Hauptblattes. (Rechtsklick auf das Blattregister > Code anzeigen > in das rechte Fenster einfügen)
Die Daten werden beim Eintragne des Kundennamens übertragen.
Microsoft Excel Objekt Tabelle1
Option Explicit 
 
Private Sub Worksheet_Change(ByVal Target As Range) 
  Dim objWS As Worksheet, strName As String 
   
  With Target 
    If .Column = 4 And .Row > 1 And .Count = 1 Then 
      If Len(.Value) Then 
        strName = ValidSheetName(.Value) 
        If SheetExist(strName) Then 
          Set objWS = Sheets(strName) 
        Else 
          Set objWS = Worksheets.Add(After:=Sheets(Sheets.Count)) 
          With objWS 
            .Name = strName 
            .Range("A1:C1") = Array("Datum", "Text", "Betrag") 
            .Range("A1:C1").Font.Bold = True 
          End With 
        End If 
        With objWS 
          .Rows(2).Insert 
          Target.Offset(0, -3).Resize(1, 3).Copy .Cells(2, 1) 
        End With 
      End If 
      Me.Activate 
    End If 
  End With 
End Sub 
 
Private Function SheetExist(ByVal sheetName As String, Optional Wb As Workbook, Optional ByVal byCodeName As Boolean = False) As Boolean 
  Dim wks As Object 
  On Error GoTo ERRORHANDLER 
  If Wb Is Nothing Then Set Wb = ThisWorkbook 
  For Each wks In Wb.Sheets 
    If byCodeName Then 
      If LCase(wks.CodeName) = LCase(sheetName) Then SheetExist = True: Exit Function 
    Else 
      If LCase(wks.Name) = LCase(sheetName) Then SheetExist = True: Exit Function 
    End If 
  Next 
ERRORHANDLER: 
  SheetExist = False 
End Function 
 
Private Function ValidSheetName(ByVal strName As String) As String 
  'Returns a valid name for excel-sheets 
  Dim objRegExp As Object, strTmp As String 
 
  On Error GoTo ErrExit 
 
  Set objRegExp = CreateObject("vbscript.regexp") 
 
  With objRegExp 
    .Global = True 
    .Pattern = "[\/\\:\*\?\[\]]" 
    .IgnoreCase = True 
    strTmp = Trim$(.Replace(strName, "")) 
    .Pattern = "[ ]+" 
    strTmp = .Replace(strTmp, " ") 
  End With 
 
  If Len(strTmp) Then 
    ValidSheetName = Left(strTmp, 31) 
  Else 
    GoTo ErrExit 
  End If 
 
  Exit Function 
 
ErrExit: 
 
  ValidSheetName = "Invalid Name!" 
End Function 

VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 16 - mit VBAHTML 12.6.0


 ABCDEF
1Gruß Sepp
2
3

Anzeige
AW: Daten aus Tabellenblatt1 je nach Bezug in andere T
02.02.2019 08:58:00
Stefan
Hallo Sepp, ich bin sprachlos! Haust du einfach mal so ein Ding raus!
Ich habe keine Ahnung wie es geht, aber es funktioniert genau wie gewünscht!
Vielen Dank für die super schnelle Hilfe am Morgen :)
Darf ich noch eine kleine Frage nachschieben:
Ich habe ein Summenfeld auf D1 in den Neuen Tabellen platziert, das die Summe aller Zahlen in der Spalte C (=summe(c2:c100)) addiert. Aber bei jedem Neueintrag rutscht die Formel um 1 nach unten (=summe(c3:c101))
OK - ich kann das leicht per Hand korrigieren, aber gibt es evtl. einen Kniff, den ich anwenden könnte, damit ich immer die aktuelle Summe habe?
Vielen Dank noch einmal
Gruß Stefan
Anzeige
AW: Daten aus Tabellenblatt1 je nach Bezug in andere T
02.02.2019 09:05:04
Sepp
Hallo Stefan,
ändere die Formel in '=SUMME($C:$C)'
Private Sub Worksheet_Change(ByVal Target As Range)
  Dim objWS As Worksheet, strName As String
  
  With Target
    If .Column = 4 And .Row > 1 And .Count = 1 Then
      If Len(.Value) Then
        strName = ValidSheetName(.Value)
        If SheetExist(strName) Then
          Set objWS = Sheets(strName)
        Else
          Set objWS = Worksheets.Add(After:=Sheets(Sheets.Count))
          With objWS
            .Name = strName
            .Range("A1:C1") = Array("Datum", "Text", "Betrag")
            .Range("D1").Formula = "=SUM($C:$C)"
            .Range("A1:C1").Font.Bold = True
          End With
        End If
        With objWS
          .Rows(2).Insert
          Target.Offset(0, -3).Resize(1, 3).Copy .Cells(2, 1)
        End With
      End If
      Me.Activate
    End If
  End With
End Sub

VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 16 - mit VBAHTML 12.6.0


 ABCDEF
1Gruß Sepp
2
3

Anzeige
AW: Daten aus Tabellenblatt1 je nach Bezug in andere T
02.02.2019 09:16:46
Stefan
Hallo Sepp,
nochmals vielen Dank!
Ich dachte, ich kann ein wenig Excel, aber ich bin platt, was alles geht.
Aber ich freue mich jetzt mit meiner Liste arbeiten zu können und werde die jetzt befüllen und zum Leben bringen.
Ich wünsche Dir ein schönes Wochenende.
Danke und viele Grüße
Stefan

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige