A voir également:
- Si.multiple ne fonctionne pas
- Fonction si multiple ✓ - Forum - Windows
- Copier/coller certaines lignes en fonction d'un critère vba ✓ - Forum - VB / VBA
- Call fonction avec arguments en vba ? ✓ - Forum - VB / VBA
- Calcul en fonction de multiples ✓ - Forum - Excel
- Ouverture extension multiple en VBA ✓ - Forum - Excel
4 réponses
jordane45
- Messages postés
- 32074
- Date d'inscription
- mercredi 22 octobre 2003
- Statut
- Modérateur
- Dernière intervention
- 14 avril 2021
Bonjour
Merci de partager ton code correctement en utilisant les balises de code
Explications à lire entièrement disponibles ici :
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
.
Merci de partager ton code correctement en utilisant les balises de code
Explications à lire entièrement disponibles ici :
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
.
yg_be
- Messages postés
- 15158
- Date d'inscription
- lundi 9 juin 2008
- Statut
- Contributeur
- Dernière intervention
- 14 avril 2021
bonjour,
peut-être:
peut-être:
dim classeur as workbook, chemin as string chemin = "" '... set classeur=workbooks.open(chemin) '... classeur.close
Akatsucki
- Messages postés
- 77
- Date d'inscription
- jeudi 1 octobre 2020
- Statut
- Membre
- Dernière intervention
- 14 avril 2021
J'ai taper le plus important :)
Sub actualisé() With thisworkbook If sheets("stock cein ”).range("s1") ="poste 1” then Workbooks.open filename:="Q:\deprog\.fichier1..xlsm”, readonly:=1, updatelinks:=0 If sheets("stock cein ”).range("s1") ="poste 2” then Workbooks.open filename:="Q:\deprog\.fichier2..xlsm”, readonly:=1, updatelinks:=0 If sheets("stock cein ”).range("s1") ="poste 3” then Workbooks.open filename:="Q:\deprog\.fichier3..xlsm”, readonly:=1, updatelinks:=0 .refreshAll Windows("fichiers1.xlms").close savechanges:= false Windows("fichiers2.xlms").close savechanges:= false Windows("fichiers3.xlms").close savechanges:= false End if End With End sub
Akatsucki
- Messages postés
- 77
- Date d'inscription
- jeudi 1 octobre 2020
- Statut
- Membre
- Dernière intervention
- 14 avril 2021
- Messages postés
- 15158
- Date d'inscription
- lundi 9 juin 2008
- Statut
- Contributeur
- Dernière intervention
- 14 avril 2021
Merci je vais tester ce code et je reviens vers vous pour vous confirmer si ça fonctionne
Par curiosité vous seriez aussi comment coder si le fichier voulu et déjà ouvert je reçois un message d’erreur( fichier déjà ouvert voulez vous le réouvrir), je voudrais donc le réouvrir dans le fermer merci d’avance si vous prenez du temps pour trouver la solution
Par curiosité vous seriez aussi comment coder si le fichier voulu et déjà ouvert je reçois un message d’erreur( fichier déjà ouvert voulez vous le réouvrir), je voudrais donc le réouvrir dans le fermer merci d’avance si vous prenez du temps pour trouver la solution
yg_be
- Messages postés
- 15158
- Date d'inscription
- lundi 9 juin 2008
- Statut
- Contributeur
- Dernière intervention
- 14 avril 2021
- Messages postés
- 77
- Date d'inscription
- jeudi 1 octobre 2020
- Statut
- Membre
- Dernière intervention
- 14 avril 2021
quand tu écris "je voudrais donc le réouvrir dans le fermer", que signifie "dans"?
quel est l'utililité de rouvrir un fichier déjà ouvert?
quel est l'utililité de rouvrir un fichier déjà ouvert?
Akatsucki
- Messages postés
- 77
- Date d'inscription
- jeudi 1 octobre 2020
- Statut
- Membre
- Dernière intervention
- 14 avril 2021
- Messages postés
- 15158
- Date d'inscription
- lundi 9 juin 2008
- Statut
- Contributeur
- Dernière intervention
- 14 avril 2021
Autant pour moi c’est une erreur de frappe le « dans » signifie SANS le refermer
Enfaite j’ai des formules dans un fichier principal qui récupère des données dans ces fichiers secondaire. Seulement j’ai un collègue qui travail avec ce fichier et change des valeurs pour faire une programmation pour le poste suivant...donc je dois ouvrir constamment ce fichier pour que mes données ce mettent a jour sinon ils ce mettent en défaut par #VALEUR!
J’espère avoir était assez clair :)
Enfaite j’ai des formules dans un fichier principal qui récupère des données dans ces fichiers secondaire. Seulement j’ai un collègue qui travail avec ce fichier et change des valeurs pour faire une programmation pour le poste suivant...donc je dois ouvrir constamment ce fichier pour que mes données ce mettent a jour sinon ils ce mettent en défaut par #VALEUR!
J’espère avoir était assez clair :)
Akatsucki
- Messages postés
- 77
- Date d'inscription
- jeudi 1 octobre 2020
- Statut
- Membre
- Dernière intervention
- 14 avril 2021
- Messages postés
- 77
- Date d'inscription
- jeudi 1 octobre 2020
- Statut
- Membre
- Dernière intervention
- 14 avril 2021
J’ai réussi à faire fonctionner ton code mais il me reste le cas ou le fichier et déjà ouvert ... il me demande de le réouvrir
yg_be
- Messages postés
- 15158
- Date d'inscription
- lundi 9 juin 2008
- Statut
- Contributeur
- Dernière intervention
- 14 avril 2021
- Messages postés
- 77
- Date d'inscription
- jeudi 1 octobre 2020
- Statut
- Membre
- Dernière intervention
- 14 avril 2021
finalement, j'ai fini par peut-être deviner ce que tu voulais dire par "je voudrais donc le réouvrir dans le fermer":
- le fermer
- l'ouvrir
- le laisser ouvert
peut-être ainsi:
- le fermer
- l'ouvrir
- le laisser ouvert
peut-être ainsi:
Sub actualisé() Dim classeur As Workbook, chemin As String, classeurouvert, garderouvert As Boolean Select Case ThisWorkbook.Sheets("stock cein ").Range("s1") Case "poste 1" chemin = "Q:\deprog\.fichier1.xlsm" Case "poste 2" chemin = "Q:\deprog\.fichier2.xlsm" Case "poste 3" chemin = "Q:\deprog\.fichier3.xlsm" End Select classeurouvert = dejaouvert(chemin) If classeurouvert Then classeurouvert.Close garderouvert = True Else garderouvert = False End If Set classeur = Workbooks.Open(Filename:=chemin, ReadOnly:=1, UpdateLinks:=0) ThisWorkbook.RefreshAll If Not garderouvert Then classeur.Close End If End Sub Private Function dejaouvert(chemin) Dim wb As Workbook For Each wb In Workbooks If wb.FullName = chemin Then Set dejaouvert = wb Exit Function End If Next wb dejaouvert = False End Function
Akatsucki
- Messages postés
- 77
- Date d'inscription
- jeudi 1 octobre 2020
- Statut
- Membre
- Dernière intervention
- 14 avril 2021
Salut merci d’avoir pris du temps pour ma macro
Je reçois un déboggage a la ligne 11 : classeurouvert = dejaouvert (chemin)
Si tu vois le soucis ????????♂️
Je reçois un déboggage a la ligne 11 : classeurouvert = dejaouvert (chemin)
Si tu vois le soucis ????????♂️
Akatsucki
- Messages postés
- 77
- Date d'inscription
- jeudi 1 octobre 2020
- Statut
- Membre
- Dernière intervention
- 14 avril 2021
- Messages postés
- 15158
- Date d'inscription
- lundi 9 juin 2008
- Statut
- Contributeur
- Dernière intervention
- 14 avril 2021
enfaite j’avais zappé un code entre true et false
Le seul hic c’est que mon fichier ne reste pas ouvert quand je l’ai déjà d’ouvert sur le bureau
Et qu’il me demande si je veux le rouvrir, vu qu’il est déjà ouvert
Le seul hic c’est que mon fichier ne reste pas ouvert quand je l’ai déjà d’ouvert sur le bureau
Et qu’il me demande si je veux le rouvrir, vu qu’il est déjà ouvert
yg_be
- Messages postés
- 15158
- Date d'inscription
- lundi 9 juin 2008
- Statut
- Contributeur
- Dernière intervention
- 14 avril 2021
- Messages postés
- 77
- Date d'inscription
- jeudi 1 octobre 2020
- Statut
- Membre
- Dernière intervention
- 14 avril 2021
j'ai un peu adapté la fonction, pour essayer de comprendre ce qui se passe:
Private Function dejaouvertalorsferme(chemin) As Boolean Dim wb As Workbook, chemins As String chemins = "" For Each wb In Workbooks If wb.FullName = chemin Then wb.Close (False) Call MsgBox(chemin, , "était ouvert") dejaouvertalorsferme = True Exit Function Else chemins = chemins + wb.FullName + vbCrLf End If Next wb Call MsgBox("cherché:" + vbCrLf + chemin + vbCrLf + vbCrLf _ + "vus:" + vbCrLf + chemins, , "pas trouvé") dejaouvertalorsferme = False End Function
Akatsucki
- Messages postés
- 77
- Date d'inscription
- jeudi 1 octobre 2020
- Statut
- Membre
- Dernière intervention
- 14 avril 2021
- Messages postés
- 15158
- Date d'inscription
- lundi 9 juin 2008
- Statut
- Contributeur
- Dernière intervention
- 14 avril 2021
J’ai pas réussi et je suis un peu perdu dans votre code vu qu’il n’y a pas d’explication sur ce que ça fait ..
J’ai donc laissé pour le moment comme c’était même si ça me pose la question de réouvrir et que ça ferme le fichier (si il était déjà ouvert de base)
Merci encore pour votre aide
J’ai donc laissé pour le moment comme c’était même si ça me pose la question de réouvrir et que ça ferme le fichier (si il était déjà ouvert de base)
Merci encore pour votre aide
yg_be
- Messages postés
- 15158
- Date d'inscription
- lundi 9 juin 2008
- Statut
- Contributeur
- Dernière intervention
- 14 avril 2021
- Messages postés
- 77
- Date d'inscription
- jeudi 1 octobre 2020
- Statut
- Membre
- Dernière intervention
- 14 avril 2021
le but des changements que j'ai fait, c'était que le code affiche ce qu'il faisait et ce qu'il voyait, afin de comprendre pourquoi cela ne fonctionne pas comme tu le souhaites.
Donc, tu réécris le code depuis ton tel... ou alors tu te l'envois par mail puis tu nous le copie/colle depuis ton tel...
bref...
Le code, il se partage en "text" et non en image.... sinon c'est inexploitable pour nous !