Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema InputBox
BildScreenshot zu InputBox InputBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Blattbenennung



Excel-Version: 8.0 (Office 97)

Betrifft: Blattbenennung
von: MikeS
Geschrieben am: 10.06.2002 - 10:28:58

Hallo Leute,

mit nachfolgendem Code kann ich mir aus einem bestimmten Dateiordner eine Datei in die aktive Mappe kopieren.

Mit der Inputbox wird bereits der String "Pos" als Blatt-
benennung voreingestellt.

Nun wollte ich hinter "Pos" zusätzlich den Wert aus Cells(1,3) automatisch voreinstellen.

Das funktioniert aber nicht!


Private Sub Neues_Objekt_aus_Datei(Ordner As String)
 Dim Dateiname
 Dim Blattname
 Dim AktPfad As String
 Dim anz As Byte
 AktPfad = DeinPfad & Ordner
 ChDrive Left(DeinPfad, 1)
 ChDir AktPfad
 Dateiname = Application.GetOpenFilename("Excel-Dateien,*.xls", , "bitte gewünschten Möbeltyp doppelklicken")
If Dateiname <> False Then
  Workbooks.Open FileName:=Dateiname
  Blattname = InputBox("Wie soll das neue Pos.-Blatt heißen ?", "Blattbenennung", "Pos" & Cells(1, 3).Value)
  If Blattname <> "" Then
    anz = ThisWorkbook.Sheets.Count
    ActiveSheet.Copy after:=ThisWorkbook.Sheets(anz)
    ActiveSheet.Name = Blattname
  End If
End If
End Sub

Weiß vielleicht jemand Rat?

Vielen Dank, MikeS

  

Re: Blattbenennung
von: Martin Beck
Geschrieben am: 10.06.2002 - 11:07:19

Hallo Mike,

die Zeile

Blattname = InputBox("Wie soll das neue Pos.-Blatt heißen ?", "Blattbenennung", "Pos" & Cells(1, 3).Value)

funktioniert bei mir einwandfrei. An welcher Stelle bleibt das Makro hängen? Was steht in Zelle A3? Evtl. wird ein nicht zulässiger Blattname gebildet.


Gruß
Martin Beck


  

Re: Blattbenennung
von: MikeS
Geschrieben am: 10.06.2002 - 11:23:12

Hallo Martin,

vielen Dank für Deine Nachricht.

zu 1
Das Makro bleibt nicht hängen. Es wird aber nur "Pos" in der Inputbox voreingestellt.

zu 2
In Zelle ( Cells(1,3) = B1 ) stehen nur Text oder Text mit Zahlen.

Wenn ich z.B. "& Cells(1,3)" durch "& Dateiname" ersetze,
dann wird "Pos" und der komplette Pfad mit dem Dateinamen angezeigt.

Hinter "Pos" soll dann einfach der Inhalt der Zelle B1 in der
Inputbox voeingestellt werden, damit ich nicht jedesmal soviel
von Hand in der Inputbox ergänzen muß.

Zeichen, die bei der Blattbenennung nicht akzeptiert werden würden,
lösche ich dann aus der Inputbox raus.

Hoffentlich konnte ich mich verständlich machen.

Vielleicht noch `ne Idee?

Ciao MikeS


  

Cells(1,3) ist Zelle C1 o.T.
von: Charly
Geschrieben am: 10.06.2002 - 11:33:11


  

Re: Cells(1,3) ist Zelle C1 o.T.
von: MikeS
Geschrieben am: 10.06.2002 - 11:35:37

Hallo Charly,

da hast Du natürlich Recht. Ist ein Tippfehler von mir.

Den Zelleninhalt von C1 will ich auch haben.

Ciao MikeS


  

Code von Martin
von: Charly
Geschrieben am: 10.06.2002 - 11:41:21

... bei mir funkt der Code von Martin problemlos!
Gruss Charly

  

Re: Code von Martin
von: MikeS
Geschrieben am: 10.06.2002 - 11:51:41

Hallo Charly,

ich habe jetzt mal in ein einzufügendes Blatt in A3 "Test" reingeschrieben und den Code hinter "Pos" mit "& Cells(3,1)"
ergänzt.

In der Inputbox wird aber trotzdem nur "Pos" angezeigt.

Woran kann das denn nur liegen???

Ciao MikeS


  

Re: Code von Martin
von: Charly
Geschrieben am: 10.06.2002 - 12:04:13

... wenn du möchtest schick ich dir eine Beispielmappe.
Charly

  

Test mit MsgBox
von: Martin Beck
Geschrieben am: 10.06.2002 - 12:33:10

Hallo Mike,

das muß funktionieren. Gib doch mal zur Kontrolle vor der Zeile mit InputBox die Zeile

MsgBox Cells(3, 1).Value

an und checke mal, was angezeigt wird. (Annahme: Cells(3, 1) wird auch in der InputBox-Zeile angesprochen.)

Gruß
Martin Beck

  

noch was ...
von: Charly
Geschrieben am: 10.06.2002 - 13:07:50

...
welche Datei ist beim InputBox-Aufruf eigentlich die aktive?
bzw. in welcher Datei in Zelle C1 steht der Blattname?
Wenn in der aktiven Datei in C1 nichts steht, kann auch nichts ausgegeben werden.
Gruss Charly

  

Re: Test mit MsgBox
von: MikeS
Geschrieben am: 10.06.2002 - 15:50:49

Hallo Martin,

habe das mit der MsgBox ausprobiert.

Die MsgBox wird zwar mit einer OK-Schaltfläche angezeigt,
aber ohne Text!!!

Warum, verstehe ich auch nicht.

Ciao MikeS


  

Re: noch was ...
von: MikeS
Geschrieben am: 10.06.2002 - 16:00:18

Hallo Charly,

ich habe eine Datei "Möbelkalkulation" geöffnet.

Im 1.Blatt ("Hauptübersicht")dieser Datei sind div.Buttons
eingebaut, mit denen ich bestimmte Dateien eines Ordners,
als neues Blatt in die "Möbelkalkulation" einfügen kann.

Nach drücken eines Buttons erscheint die ausgewählte Datei
und die Inputbox mit der Voreinstellung "Pos".

Ich dachte, wenn ich nun "Pos" & Cells(1,3)
schreibe, daß ich mich auf die Zelle C1 in der einzufügenden
Datei beziehe.

Wie kann ich das erreichen, bzw. falls das nicht geht,
würde mir auch "Pos" und das Blattregister der einzufügenden
Datei weiterhelfen.

Es tut mir leid, wenn ich mich heute morgen vielleicht
unklar ausgedrückt habe und bedanke mich schon jetzt
für Deine/Eure Mithilfe.

Ciao MikeS


  

versuch mal ...
von: Charly
Geschrieben am: 10.06.2002 - 16:26:20

... folgendes
& ThisWorkbook.Sheets(1).Cells(1, 3).Value

Gruss Charly


  

eher andersrum
von: Martin Beck
Geschrieben am: 10.06.2002 - 16:33:02

Hallo Mike, Charly,

wenn ich Mike richtig verstehe, steht sein Makro in der Datei "Möbelkalkulation". Es öffnet eine neue Datei, deren Namen in der Variablen "Dateiname" abgespeichert ist. So, wie der Code aufgebaut ist, ist diese DAtei das Activeworkbook. Cells(1,3) bezieht sich also auf das ActiveSheet in dieser Datei, und da muß in Zelle C1 etwas drinstehen, dann funktioniert es auch.

Falls nicht, schreibe mal in allen(!) Blättern in beiden Dateien etwas rein, z.B. den Blattnamen, laß das Makro laufen und kontrollieren, was angezeigt wird.

Gruß
Martin Beck


  

Re: versuch mal ...
von: MikeS
Geschrieben am: 10.06.2002 - 16:48:09

Hi Charly,

sorry, damit klappts nicht.

Martin hat es richtig beschrieben.

Trotzdem danke.

Ciao MikeS


  

Re: eher andersrum
von: MikeS
Geschrieben am: 10.06.2002 - 16:59:00

Hallo Martin,

ich habe nun in dem Blatt wo meine Buttons stehen,
in C1 "Test" reingeschrieben und das erscheint nun
auch in der InputBox "PosTest".

Das ist die aktuelle Codezeile:

Blattname = InputBox("Wie soll das neue Pos.-Blatt heißen ?", "Blattbenennung", "Pos" & Cells(1, 3).Value)

Ich möchte aber nicht den Inhalt aus C1 vom Blatt, wo meine
Buttons stehen, sondern aus C1 von den einzufügenden Blättern.

Was müßte an der Codezeile verändert werden?

Vielen Dank, ciao MikeS

  

Neuer Versuch
von: Martin Beck
Geschrieben am: 10.06.2002 - 17:09:18

Hallo Mike,

versuch mal statt

Blattname = InputBox("Wie soll das neue Pos.-Blatt heißen ?", "Blattbenennung", "Pos" & Cells(1, 3).Value)


Blattname = InputBox("Wie soll das neue Pos.-Blatt heißen ?", "Blattbenennung", "Pos" & Workbooks(Dateiname).Worksheets(1).Cells(1, 3).Value)

wenn die relevante Zelle C1 im ersten Tabellenblatt der betreffenden Datei steht.

Gruß
Martin Beck


  

Re: Neuer Versuch
von: MikeS
Geschrieben am: 10.06.2002 - 17:20:51

Hallo Martin,

mit...


Blattname = InputBox("Wie soll das neue Pos.-Blatt heißen ?", "Blattbenennung", "Pos" &
                     Workbooks(Dateiname).Worksheets(1).Cells(1, 3).Value)

erhalte ich die Fehlermeldung:

Laufzeitfehler '9' Index außerhalb des gültigen Bereichs

Ciao MikeS

  

Letzter Versuch
von: Martin Beck
Geschrieben am: 10.06.2002 - 17:28:13

Hallo Mike,

das ist alles sehr mysteriös. Letzter Versuch:

Blattname = InputBox("Wie soll das neue Pos.-Blatt heißen ?", "Blattbenennung", "Pos" &ActiveWorkbook.Worksheets(1).Cells(1, 3).Value)

Wenn das auch nicht hilft, fällt mir nichts mehr ein. Du kannst mir aber gerne (gezipt) die Datei mailen.

Gruß
Martin Beck

  

S U P E R ES KLAPPT!!!!
von: MikeS
Geschrieben am: 10.06.2002 - 17:39:02

Hallo Martin,

der letzte Versuch hat nun doch geklappt.

So wollte ich es haben.

Vielen Dank für Deine Geduld.

Auch ein dankeschön an Charly, der auch versucht hat mir zu helfen.

Macht`s gut bis später im Forum.

Ciao MikeS