Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
592to596
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
592to596
592to596
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Variable bei Arbeitsmappe

Variable bei Arbeitsmappe
30.03.2005 13:36:25
Slugger
Hallo,
ich lasse mit dem Code eine Inputbox erscheinen. Darin wird ein Name einer Datei eingetragen (z. B. Test). Nun soll er mir die Datei öffnen und mir eine Zelle in meine gerade geöffnete Arbeitsmappe kopieren. Das Problem dabei ist, das sich der Name wie oben benannt "Test" ändern kann. Hierfür habe ich die Variable "Nummer". Nur wie gebe ich diese an wenn er zwischen den beiden Mappen wechselt?

Private Sub CommandButton3_Click() 'Artikelblatt öffnen
Dim i As Long
Dim nummer As String
nummer = InputBox("Bitte geben Sie die Artikelnummer an ", "Artikelnummer", "")
With Application.FileSearch
.LookIn = "H:\FT13\BERICHTE\Artikeldatenbank\Sai112"
.SearchSubFolders = True
.Filename = nummer & ".xls"
If .Execute() > 0 Then
For i = 1 To .FoundFiles.Count
MsgBox .FoundFiles.Item(i)
Workbooks.Open Filename:=.FoundFiles(i)
Windows(nummer).select                      #### Hier das Problem #####
Range("B6:D6").Select
Selection.Copy
Windows(Artikelblatt-vordruck).select
Sheets("Formblatt").Select
ActiveWindow.SmallScroll Down:=-33
Range("B6:D6").Select
ActiveSheet.Paste
MsgBox "copy successfully", vbExclamation, "Status"
Next i
End If
End With
End Sub

Gruß
Slugger

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Variable bei Arbeitsmappe
30.03.2005 13:41:34
Hajo_Zi
Hallo Slugger,
Auf select kann in VBA zu 99% verzichtet werden.
Die geöffnete Datei ist die aktuelle
Workbooks.Open Filename:=.FoundFiles(I)
ActiveWorkbook.ActiveSheet.Range("B6:D6").Copy _
Destination:=Workbooks(Artikelblatt - vordruck).Sheets("Formblatt").Range("B6:D6")
MsgBox "copy successfully", vbExclamation, "Status"
Bitte keine Mail, Probleme sollten im Forum gelöst werden.
Microsoft MVP für Excel
Das Forum lebt auch von den Rückmeldungen.
Betriebssystem XP Home SP2 und Excel Version 2003 SP1.


Anzeige
AW: Variable bei Arbeitsmappe
30.03.2005 13:49:59
Slugger
Hallo wieder einmal,
wie ist dann die Benennung, wenn man noch eine weitere Zelle kopieren will.
Als erstes ist man ja auf der Mappe die man öffnen wollte. Dann kopiert man das in die eigene Mappe. Nächste Zelle?
ActiveWorkbook.ActiveSheet.Range("B6:D6").Copy _
Destination:=Workbooks(Artikelblatt - vordruck).Sheets("Formblatt").Range("B6:D6")
ActiveWorkbook.activesheet.range("C6:E6").copy _
Destination:=Workbooks(Artikelblatt - vordruck).Sheets("Formblatt").Range("C6:E6")
MsgBox "copy successfully", vbExclamation, "Status"
So?
Gruß Slugger
AW: Variable bei Arbeitsmappe
30.03.2005 14:04:29
Slugger
Hallo,
also habe es jetzt mal so probiert. Geht leider nicht. Auch dein Vorschlag funktioniert leider nicht. Er bringt die Fehlermeldung "Index ausserhalb des gültigen Bereichs".
Anzeige
AW: Variable bei Arbeitsmappe
30.03.2005 14:24:58
Hajo_Zi
Hallo Slugger,
ersetze
ActiveSheet
durch
Worksheets("Tabelle1")
Gruß Hajo
Das Forum lebt auch von den Rückmeldungen.
AW: Variable bei Arbeitsmappe
30.03.2005 14:36:07
Slugger
Hallo, heut klappt irgendwie nix. Hoffentlich is morgen besser. Naja, ok. Ich habe es ausprobiert und leider geht es nicht. Hier nochmal der aktuelle Code:

Private Sub CommandButton6_Click() 'Artikelblatt öffnen
Dim i As Long
Dim nummer As String
nummer = InputBox("Bitte geben Sie die Artikelnummer an ", "Artikelnummer", "")
With Application.FileSearch
.LookIn = "H:\FT13\BERICHTE\Artikeldatenbank\Sai112"
.SearchSubFolders = True
.Filename = nummer & ".xls"
If .Execute() > 0 Then
For i = 1 To .FoundFiles.Count
MsgBox .FoundFiles.Item(i)
Workbooks.Open Filename:=.FoundFiles(i)
ActiveWorkbook.Worksheets("Formblatt Win95").Range("B6:D6").Copy _
Destination:=Workbooks("Artikelblatt-vordruck-Lieferanten").Sheets("Formblatt").Range("B6:D6")
ActiveWorkbook.Worksheets("Formblatt Win95").Range("H6:J6").Copy _
Destination:=Workbooks("Artikelblatt-vordruck-Lieferanten").Sheets("Formblatt").Range("H6:J6")
MsgBox "copy successfully", vbExclamation, "Status"
Next i
End If
End With
End Sub

Er bringt die Fehlermeldung ab ActiveWorkbook.Worksheets......
Da ja nummer die Variable ist, kann man nicht einfach Workbook(nummer).range(Bla).copy oder so machen?
Gruß Slugger
Anzeige
AW: Variable bei Arbeitsmappe
30.03.2005 14:42:33
Hajo_Zi
Hallo Slugger
in Deinem ersten Code war Artikelblatt-vordruck-Lieferanten eine Varianle jetzt isdt es ein String. Hat Deine Datei tatsächlich den Namen "Artikelblatt-vordruck-Lieferanten".
Also meine Dateien haben alle den Dateityp ".XLS"
Gruß Hajo
Das Forum lebt auch von den Rückmeldungen.
AW: Variable bei Arbeitsmappe
30.03.2005 14:46:07
Slugger
Hallo,
ja, entschuldige, da hab ich mich verschrieben gehabt. ja, alle Dateien sind Excel Dateien. Es sind sozusagen "Formulare". Diese werden ausgefüllt und unter anderem Namen abgespeichert. Deswegen muss ich für diese Dateien, da ich ja nicht je nachdem wie die heißen, sozusagen eine Variable nehmen. Also Workbook(i) oder so ähnlich.
Weißt jetzt wie ich das meine, oder soll ich nochmal genauer erklähren?
Gruß
Slugger
Anzeige
AW: Variable bei Arbeitsmappe
30.03.2005 14:54:26
Hajo_Zi
Hallo Slugger,
ich habe nun gestern schon die Dateien nachgebaut und an dene habe ich es getestet ohne Problem.

Sub Test()
ActiveWorkbook.Worksheets("Altdaten").Range("B6:D6").Copy _
Destination:=Workbooks("datenbank sai112.xls").Sheets("Formblatt").Range("B6:D6")
End Sub

Gruß Hajo
Das Forum lebt auch von den Rückmeldungen.
AW: Variable bei Arbeitsmappe
30.03.2005 15:01:43
Slugger
Hallo,
die anderen Posts bzw. Dateien beziehen sich auf eine andere Arbeitsmappe. Diese, an der ich momentan arbeite ist praktisch nur ein Forumlar. Es ist so:
Der Anwender bekommt eine solche Datei zurück. Diese heißt im Original "Artikelblatt-Vordruck-Win95". Nun macht der Anwender die folgende Datei auf "Artikelblatt-Vordruck-Lieferanten". Nun klickt er auf den Button und der Anwender muss den Namen der Datei wo er zurückbekommen hat eingeben. Nachdem die Datei gefunden ist wird sie geöffnet und die Zellen die dort befüllt sind in "Artikelblatt-Vordruck-Lieferanten" übernommen. Nun spreichert der Anwender die "Artikelblatt-Vordruck-Lieferanten" unter z. B. der Lieferantennummernamen ab.
Sozusagen muss Excel immer zwischen den 2 Mappen hin und her switchen und dabei die Zellen kopieren die angegeben sind. Wenn ich nun den Code wie in meinem letzten Post geschrieben ausführe, dann hällt er bei ActiveWorkbooks.... an und markiert diese und die Zeile mit Destination:=.....
Könnte das evtl. an der Office Version liegen? Ich benutze ja Office XP
gruß
Anzeige
AW: Variable bei Arbeitsmappe
30.03.2005 15:07:09
Hajo_Zi
Hallo Slugger,
das wiederstebt mir solche Vorgehensweisen zu unterstützen das die Datei den Namen "Artikelblatt-Vordruck-Lieferanten" hat. Es sollte schon aus dem Dateinamen hervorgehen um was für ein Typ es sich handelt z.b. "Artikelblatt-Vordruck-Lieferanten.xls". Jeder der sich ein wenig auskenmnt sieht sofort das dies eine Exceldatei ist. Aus o.g. Gründen mache ich Schluß.
Gruß Hajo
Das Forum lebt auch von den Rückmeldungen.
AW: Variable bei Arbeitsmappe
30.03.2005 15:14:58
Söugger
Hallo,
ich denke ich hab das jetzt falsch formuliert. Natürlich sind alle Dateien Excel Dateien. Diese enden auch alle mit *.xls . Im Code habe ich diese ja auch deklariert.
filename = nummer & xls
nur bei der inputbox kann der Anwender ohne .xls eingeben, da es überall Daus gibt und ich es so einfach wie möglich machen möchte. Das Problem besteht lediglich beim "switchen" zwischen den beiden Mappen, da sich der Name der Mappe die man bekommt ja ändern kann. Sonst wäre das ja kein Problem. Nur so muss ich eine Möglichkeit finden den Syntax umzuschreiben. Also Statt Worksbooks("Artikelblatt-Vordruck-Lieferanten")
z. B. Workbooks(i)
gruß Slugger
Anzeige
AW: Variable bei Arbeitsmappe
30.03.2005 15:20:52
Hajo_Zi
Hallo Slugger,
dann viel Erfolg. Ich kenne mich mit VBA ein wenig aus und für mich ist Dein Code schon nicht klar. Du hast eine For next Schleife mit eine Laufvariablen I das Workbook wohin kopiert wird hat die Variable I. Nirgens in Deinem Code wird das I für das Woorkbook belegt. Also Fragen über Fragen. Dies war nun tatsächlich der letzte Beitrag.
Gruß Hajo
Das Forum lebt auch von den Rückmeldungen.
Nachtrag
30.03.2005 15:37:47
Slugger
Hallo,
ich hatte eigentlich gedacht das ich das Problem genug erklährt hatte. Nunja, es ist auch wirklich nirgends i für das Workbook belegt. Deshalb hatte ich es auch nur als Beispiel geschrieben (siehe vorherigen Post).
Nun gut ich werde mich deswegen an anderer Stelle erkundigen. Trotzdem vielen Dank für die Bemühungen.
MFG
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige