Thema Datum  Von Nutzer Rating
Antwort
17.01.2021 15:42:41 avi88
NotSolved
17.01.2021 15:54:57 Gast55676
NotSolved
17.01.2021 16:38:03 avi88
NotSolved
17.01.2021 17:44:26 Gast43450
NotSolved
17.01.2021 18:11:09 Gast67663
NotSolved
Blau Range Variable über Application.InputBox
17.01.2021 18:31:04 Gast76421
Solved

Ansicht des Beitrags:
Von:
Gast76421
Datum:
17.01.2021 18:31:04
Views:
639
Rating: Antwort:
 Nein
Thema:
Range Variable über Application.InputBox

Ok. Keine Ahnung vorher du die Dateinamen nimmst - könnte man z.B. in Excel in Zellen untereinander auflisten.

Ich gehe hier jedoch mal den Weg über ein Datenfeld (Array):

Option Explicit

Sub Test()
  
  Dim wkb         As Excel.Workbook
  Dim rngResult   As Excel.Range
  Dim vntFileList As Variant
  Dim vntFile     As Variant
  
  vntFileList = Array("H:\Test1.xlsx", _
                      "H:\Test2.xlsx", _
                      "H:\Test3.xlsx")
  
  For Each vntFile In vntFileList
    
    'Mappe referenzieren (wir öffnen sie hier zugleich)
    Set wkb = Workbooks.Open(vntFile)
    
    'sicher stellen, dass sie im Vordergrund ist
    ' (nach einem Workbooks.Open() eigentlich immer autom. der Fall - trotzdem)
    Call wkb.Activate
    
    'der Nutzer soll jetzt den Bereich auswählen
    On Error Resume Next
    Set rngResult = Nothing
    Set rngResult = Application.InputBox("Range", Type:=8)
    On Error GoTo 0
    
    If rngResult Is Nothing Then
      'hier wurde auf Abbrechen geklickt
      ' ... also nix zu tun für uns
    Else
      'theoretisch kann der Benutzer anstatt einer Zelle auch einen Bereich auswählen
      ' Wie soll darauf reagiert werden?
      '  * darauf bestehen, das er nur eine Zelle auswählt
      '  * einfach die erste im Bereich nehmen (<- diese Variante wird hier gewählt)
      Call MsgBox("Zelle: " & rngResult.Cells(1).Address & vbNewLine & _
                  "Wert: " & rngResult.Cells(1).Value, vbInformation)
    End If
    
    'Mappe schließen
    Call wkb.Close(SaveChanges:=False)
  Next
  
End Sub

Das makro öffnet nacheinander die drei Mappen, fragt bei jeder nach dem Bereich und gibt denn die Zell-Adresse und dessen Inhalt aus und schließt die Mappe dann wieder.

Falls der Benutzer auf Abbrechen klickt, wird die Mappe sozusagen übersprungen.

 

Nun bin ich mir noch nicht ganz sicher wohin mit den Werten. Willst du die erst sammeln und dann ausgeben, oder gleich, sobald du sie hast z.B. in einer Zelle in einer anderen Mappe - oder in der, in der dieses Makro läuft - ausgeben?

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
17.01.2021 15:42:41 avi88
NotSolved
17.01.2021 15:54:57 Gast55676
NotSolved
17.01.2021 16:38:03 avi88
NotSolved
17.01.2021 17:44:26 Gast43450
NotSolved
17.01.2021 18:11:09 Gast67663
NotSolved
Blau Range Variable über Application.InputBox
17.01.2021 18:31:04 Gast76421
Solved