XL 2019 Ruban inactif après ouverture fichier en VBA

Jacques25bis

XLDnaute Junior
Bonjour à tous,

J'ai une longue macro qui me permet la mise à jour d'un fichier et l'envoi d'un nouveau formulaire et j'ai un petit soucis avec le bout de code suivant :

If OptionButton1 = True Then 'Ouverture réclam
Workbooks.Open Filename:=chemin & fourn & "\" & réclam & "\" & réclam & fourn & réf & ".xlsm", UpdateLinks:=0
[AW2] = "Avenant"
[BC2] = TextBox3.Value
End If

Ca marche bien mais quand je veux utiliser les commandes du ruban il faut que je sélectionne un autre fichier pour revenir sur celui que j'ai ouvert sinon les actions sur le ruban sont impossible par exemple si je veux changer une couleur de cellule je vois l'icone mais je ne peux pas cliquer donc je repasse par un autre fichier et là sans rien changer d'autre ça marche.
J'ai essayé avec un sheets"blablabla".activate mais ça ne change rien.
Auriez-vous une idée du problème et de sa solution.

Merci

@ plus
Jack
 

Fipat

XLDnaute Occasionnel
Bonjour,

Utilisez-vous l'instruction Option Explicit (Visual Basic for Applications) qui force la déclaration explicite de toutes les variables utilisées dans un module ?
Surement une piste pour des variables non déclarées ?
Ou peut-être rajouter :
VB:
Sub RefreshWorkbook()
    ActiveWorkbook.RefreshAll
End Sub
"ActiveWorkbook" peut être remplacé par le nom du classeur que vous souhaitez actualiser.
 

Fipat

XLDnaute Occasionnel
Bonjour,

Pas facile, mais peut-être ceci pour ouvrir une nouvelle instance voir si cela corrige le souci.
VB:
Dim excelApp As Object
Dim wb As Workbook

Set excelApp = CreateObject("Excel.Application")
Set wb = excelApp.Workbooks.Open(fileName:=Chemin & fourn & "\" & réclam & "\" & réclam & fourn & réf & ".xlsm", UpdateLinks:=0)

Set wb = Nothing
Set excelApp = Nothing
 

Fipat

XLDnaute Occasionnel
Oui.
Désolé je sèche et sans ton code c'est compliqué.
Utilise la méthode ExecuteExcel4Macro pour exécuter la commande SHOW.TOOLBAR.
Ici masque et affiche le ruban.
Essaye ceci :
VB:
Sub Ribbon()
Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",False)"
Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",True)"
End Sub

Si toujours pas de résultats :
Code:
Sub ResetAll()
    Dim myCommandBar As CommandBar
    For Each myCommandBar In Application.CommandBars
        If myCommandBar.Type = msoBarTypePopup Then
            myCommandBar.Reset
            myCommandBar.Enabled = True
        End If
    Next myCommandBar
End Sub

Cela reste des pistes...
 
Dernière édition:

Jacques25bis

XLDnaute Junior
Bonjour Fipat, le forum,

J'ai solutionné mon problème.
En voulant essayé tes dernières pistes je me suis rendu compte que la macro était activé par un userform, je le fait tellement naturellement que ça ne m'a pas interpellé tout de suite... J'ai donc mis un unload dans mon bloc If et après plusieurs essais (début, fin) ça marche.
Je sais que c'est important pour ces raisons d'avoir les codes et les fichiers mais dans ce cas le fichier est énorme et il y a de nombreux codes.
Encore merci pout ton aide Fipat.

Bonne journée à tous.

Jack
 

Discussions similaires

H
Réponses
19
Affichages
6 K

Statistiques des forums

Discussions
315 098
Messages
2 116 190
Membres
112 679
dernier inscrit
Yupanki