Collapse column

Autor Thema: Office 2010: Simulation F2 über VBA funktioniert nicht richtig  (Gelesen 1725 mal)

Offline Stefan66

  • Newbie
  • *
  • Beiträge: 1
    • Profil anzeigen
  • Office-KnowHow: Fortgeschritten
  • VBA-KnowHow- : Mittelmäßig
  • Version [Office] : Office 2010
Office 2010: Simulation F2 über VBA funktioniert nicht richtig
« am: Juni 20, 2016, 18:10:18 Nachmittag »
Hallo ins Forum,

ich brauche Eure Hilfe, denn ich bin kurz vor dem Verzweifeln. Mein Problem ist, dass ich in Excel mehrere Bezüge auf eine andere Datei dynamisieren möchte. Diese "baue" ich mir über die Text-Funktionen in Excel zusammen und lasse dann die Ergebnisse mittels Makro als Wert in eine andere Zellen kopieren.

Soweit funktioniert auch alles, nur dass leider als Ergebnis zunächst "#name?" angezeigt wird. Nach dem Öffnen der Zelle mit F2 und Enter wird der Berzug aktiv und alles ist (eigentlich) ok. Ich möchte nun aber nicht immer jede Zelle auf diese Art von Hand aktualisieren, sondern dies ebenfalls dem Makro überlassen.

Die grundlegende Syntax habe ich im Netz an vielen Stellen gefunden, nur leider funktioniert sie bei mir nicht richtig. Warum auch immer, erfolgt die Aktualisierung in meinem Arbeitsblatt nämlich nicht an der Stelle, die ich mit der Range-Anweisung vorgebe, sondern dort, wo der Cursor nach Ablauf der gesamten Prozedur steht !?!?

Zu allem Überfluss bewirkt die Ausführung des Codes auch noch, dass mein Numerik-Feld jedes Mal "umgeschaltet" wird (-> von "Ein" auf "Aus", bzw. von "Aus" auf "Ein"). So, genug der Vorrede, hier der Code:


Option Explicit

Sub ComboBox1_Change()
    Dim rngAktiveZelle As Range
    Dim strExtPfad As String
   
    Application.ScreenUpdating = False
' Position der aktiven Zelle merken
    Set rngAktiveZelle = ActiveWindow.ActiveCell
' Ausgewählten Wert der Auswahlbox in Zelle V23 speichern
    Range("V23") = ComboBox1.Value
    Range("V24").Calculate
' aktualisierte Formel als Wert/Text nach W24 kopieren und dann in Variable strExtPfad speichern
    ActiveSheet.Range("W24") = ActiveSheet.Range("V24").Value
    strExtPfad = Range("W24").Value
' Formeln mit "Suchen und Ersetzen" aktualisieren
    Range("W27:W28").Replace What:="*report", Replacement:=strExtPfad
    Sim_F2_a
    Range("Q62:Q64").Replace What:="*report", Replacement:=strExtPfad
    Sim_F2_b
' ursprüngliche aktive Zelle wieder auswählen
    rngAktiveZelle.Select
    Application.ScreenUpdating = True
End Sub


Sub Sim_F2_a()
    Dim objZelleF2a As Object

    Range("W27:W28").Select
    For Each objZelleF2a In Selection
        SendKeys "{F2}", True
        SendKeys "{ENTER}", True
    Next objZelleF2a
End Sub


Sub Sim_F2_b()
    Dim objZelleF2b As Object

    Range("Q62:Q64").Select
    For Each objZelleF2b In Selection
        SendKeys "{F2}", True
        SendKeys "{ENTER}", True
    Next objZelleF2b
End Sub



Mit Suchen/Ersetzen wird der Pfad auf eine andere externe Quelle geändert. Danach sollte der jeweilig Aufruf für den betroffenen Bereich die Funktion "F2" und "ENTER" ausführen. Und da hapert es dann leider ...

Ich hoffe, jemand hat eine Idee, wo mein Fehler liegt.
Schon mal vielen Dank
Stefan

   

Keine Lösung gefunden? Du kannst Dich gerne an unser erfahrenes Experten-Team wenden und Dein Anliegen in Auftrag geben.
>>> Schnell und einfach ein unverbindliches Angebot anfordern. Per E-Mail an anfrage@excel-inside.de oder per Online-Formular
<<<

!!! Wichtige Information
!!! Dieses Forum steht aus technischen Gründen ab dem 11. September 2019 nur noch im Lesemodus zur Verfügung.
Das NEUE Office-Fragen-Forum kannst du aber unter der gewohnten Domain https://office-fragen.de wie gewohnt nutzen.

- Wir freuen uns auf deinen Besuch im neuen Forum.

Offline maninweb

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 1.063
    • Profil anzeigen
    • Excel Formula Translator
  • Office-KnowHow: Experte
  • VBA-KnowHow- : Sehr gut
  • Version [Office] : Office 2016
Antw:Office 2010: Simulation F2 über VBA funktioniert nicht richtig
« Antwort #1 am: Juni 22, 2016, 19:19:09 Nachmittag »
Hallo,

leider ist meine Zeit momentan zu knapp, um Dir einen Code erstellen zu können, aber SendKeys kann nicht funktionieren
und wenn, dann ist es instabil. SendKey simuliert einen Tastendruck, bevor das aber in der Zelle ankommt, stehen Excel
und Windows davor. Dein SendKeys wird entweder geschluckt oder löst was anderes aus (was Du feststellst).
Versuche mal für eine Zelle ActiveSheet.Cells(x,y).Formula = ActiveSheet.Cells(x,y).Formula zu setzen.

Gruß





Microsoft Excel Expert · Microsoft Most Valuable Professional (MVP) from 01/2011 - 06/2019
https://de.excel-translator.de :: Online Excel-Formel-Übersetzer :: Alle Übersetzungen der Excel Funktionen & Fehlerwerte

Wenn du dich noch intensiver mit Excel beschäftigen möchtest, dann empfiehlt sich ein Online-Kurs,
in dem du sehr viel über Excel erfährst und das gelernte umgehend in der Praxis anwenden kannst.