Problème vba [Résolu]

Signaler
Messages postés
63
Date d'inscription
jeudi 1 octobre 2020
Statut
Membre
Dernière intervention
26 novembre 2020
-
Messages postés
63
Date d'inscription
jeudi 1 octobre 2020
Statut
Membre
Dernière intervention
26 novembre 2020
-
Bonjour,

Je bloque sur mon code VBA qui ne réponds pas à ma demande ...
Je cherche à actualiser mes données on ouvrant un fichier (si pas déjà ouvert), puis le refermer
OU si déjà ouvert, le fermer et le réouvrir pour mettre à jours les nouvelles donnée
Pouvais voir ou est mon erreur...



Je sais qu’une photo n’est pas très acceptable pour m’aider mais la macro ce trouve sur le fichier de mon entreprise et il est interdit d’utiliser internet

Akatsucki

2 réponses

Messages postés
13943
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 janvier 2021
785
bonjour,
le code ne se comporte pas comme tu le souhaites?
que fait-il?
il n'a jamais fonctionné?
Messages postés
63
Date d'inscription
jeudi 1 octobre 2020
Statut
Membre
Dernière intervention
26 novembre 2020
>
Messages postés
13943
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 janvier 2021

Oui mais j’ai déjà essayé votre ancien code à la lettre et cela ne fonctionne pas
Messages postés
63
Date d'inscription
jeudi 1 octobre 2020
Statut
Membre
Dernière intervention
26 novembre 2020
>
Messages postés
63
Date d'inscription
jeudi 1 octobre 2020
Statut
Membre
Dernière intervention
26 novembre 2020

J’ai essayé ceci.. si ça peut vous aider à comprendre mon soucis


  Sub actualité 

Application.screenupdating = false
Application.enableevents = false

Dim classeur as worbook, chemin as string, dejaouvert as boolean 

Select case thisworkbook.sheets("ACCUEIL").range("k20")
Case "poste 1"
Chemin = "Q:\deptprod\confection bu\production\commun conf\programme P1 pour P2.xlsm"

Case "poste 2"
Chemin = "Q:\deptprod\confection bu\production\commun conf\programme P2 pour P3.xlsm"

Case "poste 3"
Chemin = "Q:\deptprod\confection bu\production\commun conf\programme P3 pour P1.xlsm"

End select 

'Si classeur ouvert, alors fermer puis réouvrir 

If Dejaouvert then 

Classeur.close savechanges:= false
Set classeur = workbooks.open(filename:=chemin, readonly:=1, updatelinks:=0)
Thisworkbook.refreshall

Else

'Si classeur fermé, alors ouvrir puis refermer (sans sauvegarde)

Set classeur = workbooks.open(filename:=chemin, readonly:=1, updatelinks:=0)
Thisworkbook.refreshall
Classeur.close savechanges:= false

End if 

Application.screenupdating = true
Application.enableevents = true

Private function dejaouvert (chemin as string) as boolean
Dim classeur as workbook
On error résume Next 
Set classeur = workbooks(chemin)
If err.number = 0 then 
Dejaouvert = true 
Else
Dejaouvert = false
End if 
End function 

End sub 
Messages postés
13943
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 janvier 2021
785 >
Messages postés
63
Date d'inscription
jeudi 1 octobre 2020
Statut
Membre
Dernière intervention
26 novembre 2020

le but de la dernière version était d'afficher ce qui se passait, pour comprendre ce qui n'allait pas.
Messages postés
63
Date d'inscription
jeudi 1 octobre 2020
Statut
Membre
Dernière intervention
26 novembre 2020
>
Messages postés
13943
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 janvier 2021

Ça ne m’affichait rien du tout ...
Enfaite il ne sais pas si le fichier est ouvert ou non d’après moi
Quand je fais pas à pas il saute l’étape
Messages postés
13943
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 janvier 2021
785 >
Messages postés
63
Date d'inscription
jeudi 1 octobre 2020
Statut
Membre
Dernière intervention
26 novembre 2020

tu as probablement raison, qu'il ne sait pas si le fichier est ouvert ou non.
quand je teste chez mi, cela fonctionne bien.
tu as donc testé ceci: https://forums.commentcamarche.net/forum/affich-36885396-fonction-si-multiple-en-vba#26

il n'affiche vraiment rien de rien?
quelle étape saute-t'il?
Messages postés
63
Date d'inscription
jeudi 1 octobre 2020
Statut
Membre
Dernière intervention
26 novembre 2020

J’ai de nouveau le debogage ligne 11 de ton code ...
T’es sur d’avoir le même code que moi car vbCrLf ça veut dire quoi ??
Messages postés
13943
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 janvier 2021
785 >
Messages postés
63
Date d'inscription
jeudi 1 octobre 2020
Statut
Membre
Dernière intervention
26 novembre 2020

j'ai retesté, cela fonctionne bien chez moi.
Messages postés
63
Date d'inscription
jeudi 1 octobre 2020
Statut
Membre
Dernière intervention
26 novembre 2020
>
Messages postés
13943
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 janvier 2021

Vous avez vérifié que mon code est juste ?
De mon côté mon affichage reste sur le fichier Réouvert... je vais refaire un pas à pas pour voir cet après-midi
Messages postés
63
Date d'inscription
jeudi 1 octobre 2020
Statut
Membre
Dernière intervention
26 novembre 2020
>
Messages postés
63
Date d'inscription
jeudi 1 octobre 2020
Statut
Membre
Dernière intervention
26 novembre 2020

Bon après plusieurs essai le code et bon
Donc j’ai réfléchi à mon problème... j’ai donc rajouter après ouverture du fichier le RÉDUIRE

Donc ligne 9 : Application.WindowState = xlMinimized

Ainsi lorsque je reviens sur mon fichier de base cela ce passe correctement

Merci encore infiniment de votre aide je suis pas encore assez avancé en vba pour pondre un code pareil

Crdlmt
Messages postés
13943
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 janvier 2021
785 >
Messages postés
63
Date d'inscription
jeudi 1 octobre 2020
Statut
Membre
Dernière intervention
26 novembre 2020

content que tu y sois arrivé!
peux-tu marquer la discussion comme résolue?
Messages postés
63
Date d'inscription
jeudi 1 octobre 2020
Statut
Membre
Dernière intervention
26 novembre 2020
>
Messages postés
13943
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 janvier 2021

C’est fait ✅