Herbers Excel-Forum - das Archiv

Tabellenblätter in Arbeitsmappe einfügen

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Bild

Betrifft: Tabellenblätter in Arbeitsmappe einfügen
von: Christin
Geschrieben am: 10.11.2003 10:09:43
Hallo!

ich habe mit Hilfe dieser Site schon sehr viel erreichen können, doch für folgendes Problem habe ich noch kein Lösung gefunden. Ich hoffe, daß mir darauf jemand eine Antwort geben kann:

Also: Ich habe ein Tabellenblatt entworfen (Original), in das täglich Daten aus einer externen Exceltabelle per Makro eingefügt werden. Nun will ich, daß per Makro das "Original" inclusive der Schaltflächen und der dazugehörigen Makros erneut eingefügt wird, sodaß da die Daten für den nächsten Tag eingetragen werden können. es soll dann sozusagen für jeden Tag ein Tabellenblatt geben. diese einzelnen sollen nacheinander in einer Arbeitsmappe aufeinanderliegen.

Ciao Christin

Bild

Betrifft: AW: Tabellenblätter in Arbeitsmappe einfügen
von: Lutz
Geschrieben am: 10.11.2003 10:31:02
Hallo Christin,



Sub neues_Blatt()
x = Sheets.Count
Sheets("Tabelle1").Copy After:=Sheets(x)
End Sub



Gruß Lutz
Bild

Betrifft: noch was vergessen...
von: Lutz
Geschrieben am: 10.11.2003 10:34:46
ich würde die Makros, die wahrscheinlich in Deinem Tabellenblatt stehen, nicht jedes Mal mitkopieren, da diese nur die Dateigröße unnötig erhöhen.
Schreibe diese Makros lieber in ein Modul und rufe diese dann über Deine Buttons auf.
Wenn Du dabei Hilfe benötigst, dann melde Dich nochmal.

Gruß Lutz
Bild

Betrifft: AW: noch was vergessen...
von: Christin
Geschrieben am: 10.11.2003 10:39:36
also danke erstmal!
ich habe die makros schon den schaltflächen zugewiesen und mein problem war bisher, daß die buttons inclusive der zugewiesenen makros nicht mit kopiert wurden...
ich versuche es jetzt so einzufügen, daß es funktioniert, und wenn es nochmal probleme gibt, weiß ich ja jetzt, wo ich mich hinwenden kann.
Also danke nochmal und vielleicht bis später!
Bild

Betrifft: AW: noch was vergessen...
von: Lutz
Geschrieben am: 10.11.2003 11:11:03
Hallo Christin,

wenn Du Dein Vorlagenblatt täglich neu brauchst, würde ich so vorgehen:
Die Blatt mit dem jeweiligen Datum benennen und beim Öffnen der Datei prüfen, ob schon ein Blatt mit dem heutigen Datum vorhanden ist. Wenn nicht, dann dieses Blatt erstellen und anzeigen.
Die Zuweisung der Buttons im Tabellenblatt zu ändern ist an sich auch kein Problem.
Eleganter (vor allem, weil Du offensichtlich täglich mit dieser Datei arbeitest) wäre eine eigene Symbolleiste, so dass Du auf die Buttons in den Blättern verzichten könntest.

Gruß Lutz
Bild

Betrifft: AW: noch was vergessen...
von: Christin
Geschrieben am: 10.11.2003 11:17:32
okay...
aber es wird nicht jeden tag ein blatt benötigt...es müssen nur für arbeitstage und nur für diese, wo daten hinterlegt sind solche blätter erstellt werden.
aber das mit der symbolleiste ist eine gute idee! wie mache ich das denn?
Bild

Betrifft: AW: noch was vergessen...
von: Lutz
Geschrieben am: 10.11.2003 11:34:59
Hallo Christin,

schau mal auf dieser Seite unter Excel-Downloads, dort findest Du das AddIn vbCmdBar...
Mit diesem kannst Du problemlos Deine Symbolleiste erstellen.
Solltest dann aber Deine Makros wirklich in ein Modul verschieben und so anpassen, dass sie immer im aktiven Blatt ausgeführt werden.

Gruß Lutz
Bild

Betrifft: AW: noch was vergessen...
von: Christin
Geschrieben am: 10.11.2003 11:36:57
nein, dann geht das nicht, da ich ja noch eine zweite arbeitsmappe öffnen muß, und da daten kopieren und in die originaltabelle einfüten muß
Bild

Betrifft: AW: noch was vergessen...
von: Lutz
Geschrieben am: 10.11.2003 11:44:32
Hallo Christin,

Du mußt die zweite Mappe nicht zwingend öffnen. Daten können auch aus geschlossenen Mappe eingelesen werden. Man kann auch durch Abschalten der Bildschirmaktualisierung bei Makrostart sugerieren, dass nur diese Mappe geöffnet ist...

Gruß Lutz
Bild

Betrifft: AW: noch was vergessen...
von: Christin
Geschrieben am: 10.11.2003 11:47:16
das wird mir aber ehrlich gesagt zu kompliziert...denn ich muß auch noch einen weg finden, damit der pfad der externen daten relativ bleibt. also, damit ich vor beginn der eintragung der externen daten auch noch eine datenquelle auswählen kann.
Bild

Betrifft: AW: noch was vergessen...
von: Lutz
Geschrieben am: 10.11.2003 11:52:10
Auch die Auswahl des Pfades ist kein Problem...
wenn Du keine geheimen Daten in Deiner Datei hast, kannst Du mir diese auch gern mal mailen. Ich könnte Dir dann sicher die eine oder andere Lösung anbieten bzw. gleich einbauen.

Gruß Lutz
Bild

Betrifft: pfadauswahl
von: christin
Geschrieben am: 10.11.2003 11:59:21
das könnte schon ein prob werden. arbeite ja bei ner bank, wie man sieht...bankgeheimnis...aber ich hab das problem jetzt gelöst und ich glaube, daß das mit den buttons so kein problem ist.

jetzt versuche ich meine externen daten nicht als festen pfad anzugeben. bisher sieht6 das ganze so aus:

'Datei "externe_Daten4" öffnen
Workbooks.Open FileName:= _
"\\sv032194\CB2WECD$\statistik_Host\externe_Daten4.xls"

Set wkSH = Workbooks("StatistikHost(stand2710)").Worksheets("Vorlage (2)")
Set wkED = Workbooks("externe_Daten4").Worksheets("DA45.Test.XINFODAT")

und ich möchte, daß dazwischen noch ein fenstzer geöffnet wird, in dem der benutzer seinen pfad selber angeben kann und, daß sich diese tabelle dann automatisch als wkED deklariert. außerdem wäre ne fehlermeldung nicht ganz schlecht, wenn es sich nicht um ne exceltabelle handelt.
Bild

Betrifft: AW: pfadauswahl
von: Lutz
Geschrieben am: 10.11.2003 12:43:29
Hallo Christin,

estelle Dir eine UserForm (UserForm1) mit einem Listenfeld (ListBox1) und einem Commandbutton (Commandbutton1).
Dann in das Modul der UserForm folgenden Code:



Private Sub CommandButton1_Click()
Unload Me
End Sub

Private Sub ListBox1_Click()
xDat = ListBox1.Value
Unload Me
End Sub

Private Sub UserForm_Initialize()
   Dim iCounter As Integer
   Dim sOrdner As String
   sOrdner = GetDirectory("Ein Verzeichnis auswählen!")
   If sOrdner = "" Then
      Unload Me
   Else
      Me.Caption = sOrdner
      With Application.FileSearch
         .LookIn = sOrdner
         .FileType = msoFileTypeExcelWorkbooks
         .Execute
         For iCounter = 1 To .FoundFiles.Count
            ListBox1.AddItem .FoundFiles(iCounter)
         Next iCounter
      End With
  End If
End Sub

     Code eingefügt mit Syntaxhighlighter 2.1


In ein Standardmodul diese Code:



Public Type BROWSEINFO
   hOwner As Long
   pidlRoot As Long
   pszDisplayName As String
   lpszTitle As String
   ulFlags As Long
   lpfn As Long
   lParam As Long
   iImage As Long
End Type

Public xDat As String

Declare Function SHGetPathFromIDList Lib "shell32.dll" _
   Alias "SHGetPathFromIDListA" (ByVal pidl As LongByVal pszPath As StringAs Long

Declare Function SHBrowseForFolder Lib "shell32.dll" _
   Alias "SHBrowseForFolderA" (lpBrowseInfo As BROWSEINFO) As Long

Function GetDirectory(Optional Msg As StringAs String
   Dim bInfo As BROWSEINFO
   Dim Path As String
   Dim As Long, x As Long, pos As Integer
   bInfo.pidlRoot = 0&
   If IsMissing(Msg) Then
      bInfo.lpszTitle = "Wählen Sie bitte einen Ordner aus."
   Else
      bInfo.lpszTitle = Msg
   End If
   bInfo.ulFlags = &H1
   x = SHBrowseForFolder(bInfo)
   Path = Space$(512)
   r = SHGetPathFromIDList(ByVal x, ByVal Path)
   If Then
      pos = InStr(Path, Chr$(0))
      GetDirectory = Left(Path, pos - 1)
   Else
      GetDirectory = ""
   End If
End Function

Sub DialogAufruf()
   UserForm1.Show
   [A1] = xDat
End Sub

     Code eingefügt mit Syntaxhighlighter 2.1


Pfad und Name der Datei werden hier in Zelle A1 geschrieben. Kannst Du ja abändern und direkt an Deine Variable übergeben.
Start der Verzeichnisauswahl über Dialogaufruf.

Gruß Lutz
Bild

Betrifft: einfacher...
von: Lutz
Geschrieben am: 10.11.2003 13:00:46


Sub DateiOeffnen()
Dim vFile As Variant
vFile = Application.GetOpenFilename
If vFile = False Then Exit Sub
Workbooks.Open vFile
Set wkED = ActiveWorkbook.Worksheets("DA45.Test.XINFODAT")
End Sub

     Code eingefügt mit Syntaxhighlighter 2.1


Gruß Lutz
Bild
Excel-Beispiele zum Thema " Tabellenblätter in Arbeitsmappe einfügen"
Start des Makros nach Laden der Arbeitsmappe Prüfung, ob eine Arbeitsmappe geöffnet ist
Die "personl"-Arbeitsmappe ausgeblendet speichern Blätter in andere Arbeitsmappen kopieren
Variablenübergabe in andere Arbeitsmappen SVERWEIS auf geschlossene Arbeitsmappe aus Makro aufrufen
Arbeitsmappe-Schließen-Abfrage abfangen VBA-Zugriff auf geschlossene Arbeitsmappe.
Arbeitsmappe mit dem Namen des aktuellen Datums öffnen Mit der Indirekt-Funktion auf geschlossene Arbeitsmappe zugreifen