Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

fichier en variable avec workbook open

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

jopont

XLDnaute Impliqué
Bonjour,
J'utilise la fonction workbooks open,j'aimerais pouvoir dans la variable ci-dessous allez ouvrir le fichier correspondant au mois choisi par un contrôle monthview.

Je précise également que mes fichier se nomme 01-jan, 02-fev,03-mar,....,09-septembre...

chemin = "\\Gtsud\gtsaffichage\Planning\Gestion SPV\ANNEE 2010\GARDES\mois choisi.xls"


merci
 
Re : fichier en variable avec workbook open

Pourquoi dans le code du message ci-dessus, l'application plante après l'ouverture du fichier.

J'ai un message erreur automation l'objet est déconnecté du client.

merci
 
Re : fichier en variable avec workbook open

quand je lance la macro avec workbook open, le formulaire va bien chercher les données dans le fichier.
A la fermeture du userform, quand je retourne sur le fichier initial, celui-ci est bien affiché, mais il est impossible de cliquer dessus et il fini par planté avec l'erreur d'automation.

Comment résoudre ce problème.

merci
 
Re : fichier en variable avec workbook open

Re 🙂,
Ok merci à vous tous ça fonctionne, en utilisant IF LIKE THEN.
Faudrait savoir 😛...
Bon, si tu veux revenir à un Select Case, j'avoue que je ne suis pas vraiment ton code, ça ressemble à un puzzle bien mélangé 😱...
La ressemblance et la réalité, ça fait 2 😀!
Code:
Select Case Month(MonthView1.Value)
Case 1
NomFichier = "01-jan.xls"
Case 2
NomFichier = "02-fev.xls"
[COLOR=red][B]...[/B][/COLOR]
End Select
chemin = "\\...\fichiers\"
Workbooks.Open (chemin & NomFichier)
Les ... représentent
Code:
Case 3
NomFichier = "03-mars.xls"
, etc.
Je ne comprends pas ton Application.Visible = False qui rends invisible Excel, ce qui veux dire que Excel est masqué, ce que tu prends peut-être pour un plantage. Si ce que tu veux, c'est geler l'écran, c'est Application.ScreenUpdating = False qu'il faut utiliser.
Bonne journée 😎
 
Re : fichier en variable avec workbook open

Non j'ai un vrai plantage : erreur d'automation l'objet s'est déconnecté de ces clients.

A priori ça viendrait de application.visible ?

En fait il faut juste que j'utilise après workbook open, la fermeture du fichier avec active workbook close.
Je ne veux pas que le fichier ouvert via la macro reste à l'affichage après la lecture des données.

merci
 
Re : fichier en variable avec workbook open

Ok dans le code ci-dessous ça fonctionne.
Seulement ci je rajoute : ActiveWorkbook.Close SaveChanges:=False
le classeur ouvert par la macro se ferme, mais cela fait planté le fichier initial

Private Sub CommandButton2_Click()
Select Case Month(MonthView1.Value)
Case 1
NomFichier = "01-jan.xls"

End Select
chemin = "\\...\"
Workbooks.Open (chemin & NomFichier)
colonnspv = Day(MonthView1) * 4 + 3
Label30.Caption = Cells(13, colonnspv + 4).Text
Sheets(1).Activate
With Sheets(1)
For f = 4 To 58
If .Cells(f, colonnspv + 1) = "SO" Or .Cells(f, colonnspv + 1) = "HDJ" Or .Cells(f, colonnspv + 1) = "HD" Then
V1 = V1 & Cells(f, 3) & "." & Cells(f, 4) & Chr(10)
Label27.Caption = V1

End If
If .Cells(f, colonnspv + 3) = "HDN" Or .Cells(f, colonnspv + 3) = "SON" Or .Cells(f, colonnspv + 3) = "HD" Then
V3 = V3 & Cells(f, 3) & "." & Cells(f, 4) & Chr(10)
Label28.Caption = V3
End If
If .Cells(f, colonnspv + 4) = "HDN" Or .Cells(f, colonnspv + 4) = "SON" Or .Cells(f, colonnspv + 3) = "HD" Then
V4 = V4 & Cells(f, 3) & "." & Cells(f, 4) & Chr(10)
Label29.Caption = V4
End If
Next
End With

End Sub
 
Re : fichier en variable avec workbook open

Re 🙂,
Ok dans le code ci-dessous ça fonctionne.
Seulement ci je rajoute : ActiveWorkbook.Close SaveChanges:=False
le classeur ouvert par la macro se ferme, mais cela fait planté le fichier initial
J'aime pas beaucoup les Active, car il faut être sûr que c'est le bon, passer de l'un à l'autre, etc. Sachant que le classeur que tu veux fermer est le dernier ouvert, tu peux utiliser Workbooks.Count qui va te donner le nombre de classeurs ouverts, et le dernier est forcément celui avec l'indice le plus grand, soit
Code:
Workbooks(Workbooks.Count).Close SaveChanges:=False
Cette partie n'est pas très cohérente
Code:
Label30.Caption = [COLOR=red][B]Cells[/B][/COLOR](13, colonnspv + 4).Text
Sheets(1).[COLOR=red][B]Activate[/B][/COLOR]
With Sheets(1)
Cells se rapporte à quoi ?
Pourquoi activer une feuille alors que tu utilises un With derrière ?
Et dans la suite
Code:
If .Cells(f, colonnspv + 1) = "SO" Or .Cells(f, colonnspv + 1) = "HDJ" Or .Cells(f, colonnspv + 1) = "HD" Then
V1 = V1 & [COLOR=red][B]Cells[/B][/COLOR](f, 3) & "." & [COLOR=red][B]Cells[/B][/COLOR](f, 4) & Chr(10)
Label27.Caption = V1
End If
If .Cells(f, colonnspv + 3) = "HDN" Or .Cells(f, colonnspv + 3) = "SON" Or .Cells(f, colonnspv + 3) = "HD" Then
V3 = V3 & [COLOR=red][B]Cells[/B][/COLOR](f, 3) & "." & [COLOR=red][B]Cells[/B][/COLOR](f, 4) & Chr(10)
Label28.Caption = V3
End If
If .Cells(f, colonnspv + 4) = "HDN" Or .Cells(f, colonnspv + 4) = "SON" Or .Cells(f, colonnspv + 3) = "HD" Then
V4 = V4 & [COLOR=red][B]Cells[/B][/COLOR](f, 3) & "." & [B][COLOR=red]Cells[/COLOR][/B](f, 4) & Chr(10)
Label29.Caption = V4
End If
tu as de nouveau des Cells non définies, or, vu que tu as Activate et With, il doit s'agir de la même feuille, non ?
Ça n'explique pas le plantage, mais il suffit d'une mauvaise définition quelque part, pour avoir un résultat erroné...
Bon courage 😎
 
Re : fichier en variable avec workbook open

Dans le code ci-dessous, si j'ajoute Workbooks(NomFichier).Close SaveChanges:=False, le classeur ouvert se ferme mais il y a de nouveau un plantage du fichier initial.
D'autre j'ai retiré les sheets activate.

Code:
Private Sub CommandButton2_Click()
Select Case Month(MonthView1.Value)
Case 1
NomFichier = "01-jan.xls"
Case 2
NomFichier = "02-fev.xls"
Case 3
NomFichier = "03-mar.xls"
Case 4
NomFichier = "04-avr.xls"
Case 5
NomFichier = "05-mai.xls"
Case 6
NomFichier = "06-jui.xls"
Case 7
NomFichier = "07-jui.xls"
Case 8
NomFichier = "08-aou.xls"
Case 9
NomFichier = "09-sep.xls"
Case 10
NomFichier = "10-oct.xls"
Case 11
NomFichier = "11-nov.xls"
Case 12
NomFichier = "12-dec.xls"
End Select
chemin = "\\"
Workbooks.Open (chemin & NomFichier)
colonnspv = Day(MonthView1) * 4 + 3
Label30.Caption = Cells(13, colonnspv + 4).Text
With Sheets(1)
For f = 4 To 58
If .Cells(f, colonnspv + 1) = "SO" Or .Cells(f, colonnspv + 1) = "HDJ" Or .Cells(f, colonnspv + 1) = "HD" Then
V1 = V1 & Cells(f, 3) & "." & Cells(f, 4) & Chr(10)
Label27.Caption = V1

End If
If .Cells(f, colonnspv + 1) = "X" Then
V5 = V5 & Cells(f, 3) & "." & Cells(f, 4) & Chr(10)
Label39.Caption = V5

End If
If .Cells(f, colonnspv + 3) = "HDN" Or .Cells(f, colonnspv + 3) = "SON" Or .Cells(f, colonnspv + 3) = "HD" Then
V3 = V3 & Cells(f, 3) & "." & Cells(f, 4) & Chr(10)
Label28.Caption = V3
End If
If .Cells(f, colonnspv + 3) = "X" Then
V6 = V6 & Cells(f, 3) & "." & Cells(f, 4) & Chr(10)
Label40.Caption = V6

End If
If .Cells(f, colonnspv + 4) = "HDN" Or .Cells(f, colonnspv + 4) = "SON" Or .Cells(f, colonnspv + 3) = "HD" Then
V4 = V4 & Cells(f, 3) & "." & Cells(f, 4) & Chr(10)
Label29.Caption = V4
End If
If .Cells(f, colonnspv + 4) = "X" Then
V7 = V7 & Cells(f, 3) & "." & Cells(f, 4) & Chr(10)
Label41.Caption = V7

End If
Next
End With
Workbooks(NomFichier).Close SaveChanges:=False
End Sub
[\code]
 
Re : fichier en variable avec workbook open

Re 🙂,
Ton code parraît désormais bien propre 😉.
J'ai bien peur que seuls les fichiers originaux (sans données confidentielles) nous donneront des pistes pour comprendre, car là, je ne vois aucune raison de plantage...
A priori, tu es sur un USF, un petit Unload Me avant la fin de la sub plante-t-il aussi ?
Bon courage 😎
 
Re : fichier en variable avec workbook open

Bonjour et meilleurs voeux à tous.


J'ai déjà un bouton sur le userfom qui permet de décharger le usf.
Lorsque que je le décharge, le fichier ouvert et le fichier initial plante.
 
Re : fichier en variable avec workbook open

Bonsoir
Est_ce que ça peut venir du reste du code VBA de mon fichier.

Parfois j'ai un petite erreur sur l'objet worksheets range qui n'est pas gênant.
Mais peut-être est-ce lui qui fait planter avec workbooks open.


merci
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…