Variable bei Arbeitsmappe

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

Betrifft: Variable bei Arbeitsmappe von: Slugger
Geschrieben am: 30.03.2005 13:36:25

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
Bild


Betrifft: AW: Variable bei Arbeitsmappe von: Hajo_Zi
Geschrieben am: 30.03.2005 13:41:34

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.




Bild


Betrifft: AW: Variable bei Arbeitsmappe von: Slugger
Geschrieben am: 30.03.2005 13:49:59

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


Bild


Betrifft: AW: Variable bei Arbeitsmappe von: Slugger
Geschrieben am: 30.03.2005 14:04:29

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".


Bild


Betrifft: AW: Variable bei Arbeitsmappe von: Hajo_Zi
Geschrieben am: 30.03.2005 14:24:58

Hallo Slugger,

ersetze
ActiveSheet
durch
Worksheets("Tabelle1")

Gruß Hajo

Das Forum lebt auch von den Rückmeldungen.


Bild


Betrifft: AW: Variable bei Arbeitsmappe von: Slugger
Geschrieben am: 30.03.2005 14:36:07

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


Bild


Betrifft: AW: Variable bei Arbeitsmappe von: Hajo_Zi
Geschrieben am: 30.03.2005 14:42:33

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.


Bild


Betrifft: AW: Variable bei Arbeitsmappe von: Slugger
Geschrieben am: 30.03.2005 14:46:07

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


Bild


Betrifft: AW: Variable bei Arbeitsmappe von: Hajo_Zi
Geschrieben am: 30.03.2005 14:54:26

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.


Bild


Betrifft: AW: Variable bei Arbeitsmappe von: Slugger
Geschrieben am: 30.03.2005 15:01:43

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ß


Bild


Betrifft: AW: Variable bei Arbeitsmappe von: Hajo_Zi
Geschrieben am: 30.03.2005 15:07:09

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.


Bild


Betrifft: AW: Variable bei Arbeitsmappe von: Söugger
Geschrieben am: 30.03.2005 15:14:58

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


Bild


Betrifft: AW: Variable bei Arbeitsmappe von: Hajo_Zi
Geschrieben am: 30.03.2005 15:20:52

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.


Bild


Betrifft: Nachtrag von: Slugger
Geschrieben am: 30.03.2005 15:37:47

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


 Bild

Beiträge aus den Excel-Beispielen zum Thema "Variable bei Arbeitsmappe"