Herbers Excel-Forum - das Archiv
Tabellenblätter in Arbeitsmappe einfügen
Informationen und Beispiele zu den hier genannten Dialog-Elementen:

|
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
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
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.
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!
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.
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?
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.
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ß
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...
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.
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.
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.
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 Long, ByVal pszPath As String) As Long
Declare Function SHBrowseForFolder Lib "shell32.dll" _
Alias "SHBrowseForFolderA" (lpBrowseInfo As BROWSEINFO) As Long
Function GetDirectory(Optional Msg As String) As String
Dim bInfo As BROWSEINFO
Dim Path As String
Dim r 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 r 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.
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