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

Applikation.Inputbox

Betrifft: Applikation.Inputbox von: Jürg
Geschrieben am: 18.09.2014 11:31:52

Liebe VBA Kolleginnen und Kollegen

Ich versuche mit Appliacation.Inbutbox (Type 8) einen Zellebereich in einem anderen bereits geöffneten Workbook zu markieren. Leider Funktionierte das nur mit Tabellen im aktiven Workbook. Hat da jemand eine Lösung?

  

Betrifft: AW: Applikation.Inputbox von: JoWE
Geschrieben am: 18.09.2014 14:33:23

Hallo,

vllt. so:

Sub Bereich_waehlen()
    Dim vbAdr As Range, vbFName As String
    vbFName = Application.GetOpenFilename("Microsoft Excel-Dateien (*.xls),*.xls")
    If vbFName = "Falsch" Then Exit Sub
    With Workbooks("Mappe1.xls")
       Set wbDatei = Workbooks.Open(vbFName)
       Worksheets(1).Activate
       Set vbAdr = Application.InputBox _
            ("Markieren Sie den gewünschten Bereich!", _
            "auswaehlen mit der Maus...", , , , , , 8)
       MsgBox vbAdr.Address
    End With
    wbDatei.Close False
End Sub

Gruß
Jochen


  

Betrifft: AW: Applikation.Inputbox von: fcs
Geschrieben am: 18.09.2014 14:40:58

Hallo Jürg,

grundsätzlich funktioniert dies.
Du kanst aber nur über das Menü Ansicht -- Fenster wechseln
zu einer anderen geöffneten Datei wechseln.

Nachfolgend zwei Makrobeispiele.

Gruß
Franz

Sub aaTest()
  Dim varZelle As Variant
  
  Set varZelle = Application.InputBox("Bitte Zelle auswählen", Title:="Test Zellauswahl", _
          Type:=8)
  
  varZelle.Value = Format(Now, "YYYY-MM-DD hh:mm:ss")
  
End Sub

Sub abTest()
  Dim varZelle As Variant, varTest As Variant
  Dim wksZelle As Worksheet
  Dim wkbZelle As Workbook
  Set varZelle = Application.InputBox("Bitte Zelle auswählen", Title:="Test Zellauswahl", _
          Type:=8)
  
  varTest = varZelle.Value
  Set wksZelle = varZelle.Parent
  Set wkbZelle = wksZelle.Parent
  
  MsgBox "Ausgewählt wurde: " & vbLf _
    & "Zelle: " & varZelle.Address & " - Inhalt: " & varZelle.Text & vbLf _
    & "in Tabelle: " & wksZelle.Name & vbLf _
    & "in Datei: " & wkbZelle.Name & vbLf
End Sub



  

Betrifft: AW: Applikation.Inputbox von: Jürg
Geschrieben am: 18.09.2014 15:53:02

Hallo Franz

Vielen Dank! Genau das habe ich gesucht. Der Hinweis, über das Menu Ansicht das Fenster zu wechseln, war der entscheidende Tip. Ich habe noch eine Frage zu Deinem Makro-Code:

Wozu wird die Variable varTest bzw. der Wert varZelle.value benötigt?

Herzlichen Dank und viele Grüsse
Jürg


  

Betrifft: AW: Applikation.Inputbox von: fcs
Geschrieben am: 18.09.2014 17:15:31

Hallo Jürg,

meine Makros sind Beispiele, wie man die selektierte Zelle/Zellbereich im Makro weiterverarbeiten kann.

Mit
varTest = varZelle.Value
wird z.B. der Wert der selektierten Zelle der Variablen zugewiesen. Diese Variable kann dann im Makro beliebig verwendet werden, ohne jedes mal auf die Value-Eigenschaft der Variablen varZelle Bezug zu nehmen.

Wenn du nur am Wert der selektierten Zelle interessiert bist, dann ist folgendes für die Wertzuweisung ausreichend. Da Abbrechen in der Inputbox immer zu einem Fehler führt sollte auch immer eine entsprechende Fehlerbehandlung eingebaut werden.

Gruß
Franz

Sub adTest()
  Dim varZelle As Variant
  On Error GoTo Fehler
  varZelle = Application.InputBox("Bitte Zelle auswählen", Title:="Test Zellauswahl", _
      Type:=8).Value
  MsgBox "Wert selektierte Zelle: " & varZelle
Fehler:
  With Err
    Select Case .Number
      Case 0 'alles ok
      Case 424 'Objekt-Fehler - bei Abbrechen in Textbox
        If IsEmpty(varZelle) Then Exit Sub
      Case Else
        MsgBox "Fehler-Nr.: " & .Number & vbLf & .Description
    End Select
  End With
End Sub



  

Betrifft: AW: Applikation.Inputbox von: Jürg
Geschrieben am: 18.09.2014 22:08:16

Hallo Franz

Alles klar.
Herzlichen Dank für Deine Ausführungen.
Jürg