Excel 2016
Dans une macro j'ouvre un autre fichier Excel de la mani=C3=A8re suivante.
On Error Resume Next
Application.Windows("nomfichier.xls").Activate 'si le fichier est d=C3=A9j=
=C3=A0 ouvert
If Err.Number <> 0 Then
On Error Resume Next
Workbooks.Open " nomfichier.xls "
Application.Windows(NomFichier).Activate
If Err.Number <> 0 Then 'si le fichier ne se trouve pas =C3=A0 l'emp=
lacement requis
MsgBox "Classeur - nomfichier.xls - Non ouvert..."
End
End If
End If
Certaines fois Excel ne bascule pas sur ce fichier quand il est d=C3=A9j=C3=
=A0 ouvert, et donc je perds les donn=C3=A9es que je devais r=C3=A9cup=C3=
=A9rer dans celui-ci.
Y a-t-il une mani=C3=A8re autre que celle-l=C3=A0 pour que mon fichier soit=
bien activ=C3=A9 et que je puisse continuer mon programme ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Michel__D
Bonjour, Le 07/09/2019 à 15:06, Alf a écrit :
Excel 2016 Dans une macro j'ouvre un autre fichier Excel de la manière suivante. On Error Resume Next Application.Windows("nomfichier.xls").Activate 'si le fichier est déjà ouvert If Err.Number <> 0 Then On Error Resume Next Workbooks.Open " nomfichier.xls " Application.Windows(NomFichier).Activate If Err.Number <> 0 Then 'si le fichier ne se trouve pas à l'emplacement requis MsgBox "Classeur - nomfichier.xls - Non ouvert..." End End If End If Certaines fois Excel ne bascule pas sur ce fichier quand il est déjà ouvert, et donc je perds les données que je devais récupérer dans celui-ci. Y a-t-il une manière autre que celle-là pour que mon fichier soit bien activé et que je puisse continuer mon programme ?
Quelle est la valeur de la variable NomFichier ? dans 'Application.Windows(NomFichier).Activate'
Bonjour,
Le 07/09/2019 à 15:06, Alf a écrit :
Excel 2016
Dans une macro j'ouvre un autre fichier Excel de la manière suivante.
On Error Resume Next
Application.Windows("nomfichier.xls").Activate 'si le fichier est déjà ouvert
If Err.Number <> 0 Then
On Error Resume Next
Workbooks.Open " nomfichier.xls "
Application.Windows(NomFichier).Activate
If Err.Number <> 0 Then 'si le fichier ne se trouve pas à l'emplacement requis
MsgBox "Classeur - nomfichier.xls - Non ouvert..."
End
End If
End If
Certaines fois Excel ne bascule pas sur ce fichier quand il est déjà ouvert, et donc je perds les données que je devais récupérer dans celui-ci.
Y a-t-il une manière autre que celle-là pour que mon fichier soit bien activé et que je puisse continuer mon programme ?
Quelle est la valeur de la variable NomFichier ?
dans 'Application.Windows(NomFichier).Activate'
Excel 2016 Dans une macro j'ouvre un autre fichier Excel de la manière suivante. On Error Resume Next Application.Windows("nomfichier.xls").Activate 'si le fichier est déjà ouvert If Err.Number <> 0 Then On Error Resume Next Workbooks.Open " nomfichier.xls " Application.Windows(NomFichier).Activate If Err.Number <> 0 Then 'si le fichier ne se trouve pas à l'emplacement requis MsgBox "Classeur - nomfichier.xls - Non ouvert..." End End If End If Certaines fois Excel ne bascule pas sur ce fichier quand il est déjà ouvert, et donc je perds les données que je devais récupérer dans celui-ci. Y a-t-il une manière autre que celle-là pour que mon fichier soit bien activé et que je puisse continuer mon programme ?
Quelle est la valeur de la variable NomFichier ? dans 'Application.Windows(NomFichier).Activate'
Alf
Le samedi 7 septembre 2019 15:06:13 UTC+2, Alf a écrit :
Excel 2016 Dans une macro j'ouvre un autre fichier Excel de la manière suivante . On Error Resume Next Application.Windows("nomfichier.xls").Activate 'si le fichier est dé jà ouvert If Err.Number <> 0 Then On Error Resume Next Workbooks.Open " nomfichier.xls " Application.Windows(NomFichier).Activate If Err.Number <> 0 Then 'si le fichier ne se trouve pas à l'e mplacement requis MsgBox "Classeur - nomfichier.xls - Non ouvert..." End End If End If Certaines fois Excel ne bascule pas sur ce fichier quand il est déj à ouvert, et donc je perds les données que je devais récup érer dans celui-ci. Y a-t-il une manière autre que celle-là pour que mon fichier so it bien activé et que je puisse continuer mon programme ? Merci pour votre aide Alf
La valeur de cette variable est le nom de mon fichier, ici 'nomfichier.xls' J'ai oublié de modifier cette ligne...
Le samedi 7 septembre 2019 15:06:13 UTC+2, Alf a écrit :
Excel 2016
Dans une macro j'ouvre un autre fichier Excel de la manière suivante .
On Error Resume Next
Application.Windows("nomfichier.xls").Activate 'si le fichier est dé jà ouvert
If Err.Number <> 0 Then
On Error Resume Next
Workbooks.Open " nomfichier.xls "
Application.Windows(NomFichier).Activate
If Err.Number <> 0 Then 'si le fichier ne se trouve pas à l'e mplacement requis
MsgBox "Classeur - nomfichier.xls - Non ouvert..."
End
End If
End If
Certaines fois Excel ne bascule pas sur ce fichier quand il est déj à ouvert, et donc je perds les données que je devais récup érer dans celui-ci.
Y a-t-il une manière autre que celle-là pour que mon fichier so it bien activé et que je puisse continuer mon programme ?
Merci pour votre aide
Alf
La valeur de cette variable est le nom de mon fichier, ici 'nomfichier.xls'
J'ai oublié de modifier cette ligne...
Le samedi 7 septembre 2019 15:06:13 UTC+2, Alf a écrit :
Excel 2016 Dans une macro j'ouvre un autre fichier Excel de la manière suivante . On Error Resume Next Application.Windows("nomfichier.xls").Activate 'si le fichier est dé jà ouvert If Err.Number <> 0 Then On Error Resume Next Workbooks.Open " nomfichier.xls " Application.Windows(NomFichier).Activate If Err.Number <> 0 Then 'si le fichier ne se trouve pas à l'e mplacement requis MsgBox "Classeur - nomfichier.xls - Non ouvert..." End End If End If Certaines fois Excel ne bascule pas sur ce fichier quand il est déj à ouvert, et donc je perds les données que je devais récup érer dans celui-ci. Y a-t-il une manière autre que celle-là pour que mon fichier so it bien activé et que je puisse continuer mon programme ? Merci pour votre aide Alf
La valeur de cette variable est le nom de mon fichier, ici 'nomfichier.xls' J'ai oublié de modifier cette ligne...
Michel__D
Le 07/09/2019 à 17:47, Alf a écrit :
Le samedi 7 septembre 2019 15:06:13 UTC+2, Alf a écrit :
Excel 2016 Dans une macro j'ouvre un autre fichier Excel de la manière suivante.. On Error Resume Next Application.Windows("nomfichier.xls").Activate 'si le fichier est déjà ouvert If Err.Number <> 0 Then On Error Resume Next Workbooks.Open " nomfichier.xls " Application.Windows(NomFichier).Activate If Err.Number <> 0 Then 'si le fichier ne se trouve pas à l'emplacement requis MsgBox "Classeur - nomfichier.xls - Non ouvert..." End End If End If Certaines fois Excel ne bascule pas sur ce fichier quand il est déjà ouvert, et donc je perds les données que je devais récupérer dans celui-ci. Y a-t-il une manière autre que celle-là pour que mon fichier soit bien activé et que je puisse continuer mon programme ? Merci pour votre aide Alf
La valeur de cette variable est le nom de mon fichier, ici 'nomfichier.xls' J'ai oublié de modifier cette ligne...
C'est sur quel OS (W10 par hasard) ? et aussi place le 'Application.Windows(NomFichier).Activate' après le test d'erreur.
Le 07/09/2019 à 17:47, Alf a écrit :
Le samedi 7 septembre 2019 15:06:13 UTC+2, Alf a écrit :
Excel 2016
Dans une macro j'ouvre un autre fichier Excel de la manière suivante..
On Error Resume Next
Application.Windows("nomfichier.xls").Activate 'si le fichier est déjà ouvert
If Err.Number <> 0 Then
On Error Resume Next
Workbooks.Open " nomfichier.xls "
Application.Windows(NomFichier).Activate
If Err.Number <> 0 Then 'si le fichier ne se trouve pas à l'emplacement requis
MsgBox "Classeur - nomfichier.xls - Non ouvert..."
End
End If
End If
Certaines fois Excel ne bascule pas sur ce fichier quand il est déjà ouvert, et donc je perds les données que je devais récupérer dans celui-ci.
Y a-t-il une manière autre que celle-là pour que mon fichier soit bien activé et que je puisse continuer mon programme ?
Merci pour votre aide
Alf
La valeur de cette variable est le nom de mon fichier, ici 'nomfichier.xls'
J'ai oublié de modifier cette ligne...
C'est sur quel OS (W10 par hasard) ?
et aussi place le 'Application.Windows(NomFichier).Activate' après le test d'erreur.
Le samedi 7 septembre 2019 15:06:13 UTC+2, Alf a écrit :
Excel 2016 Dans une macro j'ouvre un autre fichier Excel de la manière suivante.. On Error Resume Next Application.Windows("nomfichier.xls").Activate 'si le fichier est déjà ouvert If Err.Number <> 0 Then On Error Resume Next Workbooks.Open " nomfichier.xls " Application.Windows(NomFichier).Activate If Err.Number <> 0 Then 'si le fichier ne se trouve pas à l'emplacement requis MsgBox "Classeur - nomfichier.xls - Non ouvert..." End End If End If Certaines fois Excel ne bascule pas sur ce fichier quand il est déjà ouvert, et donc je perds les données que je devais récupérer dans celui-ci. Y a-t-il une manière autre que celle-là pour que mon fichier soit bien activé et que je puisse continuer mon programme ? Merci pour votre aide Alf
La valeur de cette variable est le nom de mon fichier, ici 'nomfichier.xls' J'ai oublié de modifier cette ligne...
C'est sur quel OS (W10 par hasard) ? et aussi place le 'Application.Windows(NomFichier).Activate' après le test d'erreur.
MichD
Bonjour, '---------------------------------------------- Sub test() Dim Wk As Workbook, X As String Dim Chemin As String, Fichier As String 'Chemin où est situé le fichier. 'Ne pas oublier le "" Chemin = "E:Documents" 'Nom du fichier déjà ouvert ou à ouvrir Fichier = "boucle.xlsm" 'Vérifie que le chemin et le fichier existent X = Dir(Chemin & Fichier) If X = "" Then 'Si le fichier n'existe pas MsgBox "Le nom du fichier ou du répertoire est inexact." 'Met fin à l'exécution de la procédure Exit Sub End If On Error Resume Next 'Si le fichier existe est ouvert 'La variable Wk pointe vers le classeur. 'Tu utilises la variable Wk pour tout le code Set Wk = Workbooks(Fichier) 'Si le fichier n'est pas ouvert, cela génère une erreur If Err <> 0 Then Err = 0 'Efface l'erreur 'ouverture du fichier 'Dès que tu ouvres le fichier, c'est la fenêtre qui va 's'afficher à l'écran peu importe la fenêtre actuellle Workbooks.Open (Chemin & Fichier) Else 'Si le fichier était ouvert 'Cela affiche à l'écran l'application Excel 'évidemment si tu as plusieurs applications ouvertes AppActivate "Excel" 'Cela active le classeur précisément si plusieurs classeur sont ouverts. Wk.Activate End If 'Exemple de code avec la variable Wk MsgBox Wk.Worksheets(1).Range("A1:A5").Address End Sub '---------------------------------------------- MichD
Bonjour,
'----------------------------------------------
Sub test()
Dim Wk As Workbook, X As String
Dim Chemin As String, Fichier As String
'Chemin où est situé le fichier.
'Ne pas oublier le ""
Chemin = "E:Documents"
'Nom du fichier déjà ouvert ou à ouvrir
Fichier = "boucle.xlsm"
'Vérifie que le chemin et le fichier existent
X = Dir(Chemin & Fichier)
If X = "" Then
'Si le fichier n'existe pas
MsgBox "Le nom du fichier ou du répertoire est inexact."
'Met fin à l'exécution de la procédure
Exit Sub
End If
On Error Resume Next
'Si le fichier existe est ouvert
'La variable Wk pointe vers le classeur.
'Tu utilises la variable Wk pour tout le code
Set Wk = Workbooks(Fichier)
'Si le fichier n'est pas ouvert, cela génère une erreur
If Err <> 0 Then
Err = 0 'Efface l'erreur
'ouverture du fichier
'Dès que tu ouvres le fichier, c'est la fenêtre qui va
's'afficher à l'écran peu importe la fenêtre actuellle
Workbooks.Open (Chemin & Fichier)
Else
'Si le fichier était ouvert
'Cela affiche à l'écran l'application Excel
'évidemment si tu as plusieurs applications ouvertes
AppActivate "Excel"
'Cela active le classeur précisément si plusieurs classeur sont
ouverts.
Wk.Activate
End If
'Exemple de code avec la variable Wk
MsgBox Wk.Worksheets(1).Range("A1:A5").Address
End Sub
'----------------------------------------------
Bonjour, '---------------------------------------------- Sub test() Dim Wk As Workbook, X As String Dim Chemin As String, Fichier As String 'Chemin où est situé le fichier. 'Ne pas oublier le "" Chemin = "E:Documents" 'Nom du fichier déjà ouvert ou à ouvrir Fichier = "boucle.xlsm" 'Vérifie que le chemin et le fichier existent X = Dir(Chemin & Fichier) If X = "" Then 'Si le fichier n'existe pas MsgBox "Le nom du fichier ou du répertoire est inexact." 'Met fin à l'exécution de la procédure Exit Sub End If On Error Resume Next 'Si le fichier existe est ouvert 'La variable Wk pointe vers le classeur. 'Tu utilises la variable Wk pour tout le code Set Wk = Workbooks(Fichier) 'Si le fichier n'est pas ouvert, cela génère une erreur If Err <> 0 Then Err = 0 'Efface l'erreur 'ouverture du fichier 'Dès que tu ouvres le fichier, c'est la fenêtre qui va 's'afficher à l'écran peu importe la fenêtre actuellle Workbooks.Open (Chemin & Fichier) Else 'Si le fichier était ouvert 'Cela affiche à l'écran l'application Excel 'évidemment si tu as plusieurs applications ouvertes AppActivate "Excel" 'Cela active le classeur précisément si plusieurs classeur sont ouverts. Wk.Activate End If 'Exemple de code avec la variable Wk MsgBox Wk.Worksheets(1).Range("A1:A5").Address End Sub '---------------------------------------------- MichD
Alf
Le samedi 7 septembre 2019 15:06:13 UTC+2, Alf a écrit :
Excel 2016 Dans une macro j'ouvre un autre fichier Excel de la manière suivante . On Error Resume Next Application.Windows("nomfichier.xls").Activate 'si le fichier est dé jà ouvert If Err.Number <> 0 Then On Error Resume Next Workbooks.Open " nomfichier.xls " Application.Windows(NomFichier).Activate If Err.Number <> 0 Then 'si le fichier ne se trouve pas à l'e mplacement requis MsgBox "Classeur - nomfichier.xls - Non ouvert..." End End If End If Certaines fois Excel ne bascule pas sur ce fichier quand il est déj à ouvert, et donc je perds les données que je devais récup érer dans celui-ci. Y a-t-il une manière autre que celle-là pour que mon fichier so it bien activé et que je puisse continuer mon programme ? Merci pour votre aide Alf
Oui c'est sur W10. Je vais essayer ce code Michel_D, et je te dirai. Merci
Le samedi 7 septembre 2019 15:06:13 UTC+2, Alf a écrit :
Excel 2016
Dans une macro j'ouvre un autre fichier Excel de la manière suivante .
On Error Resume Next
Application.Windows("nomfichier.xls").Activate 'si le fichier est dé jà ouvert
If Err.Number <> 0 Then
On Error Resume Next
Workbooks.Open " nomfichier.xls "
Application.Windows(NomFichier).Activate
If Err.Number <> 0 Then 'si le fichier ne se trouve pas à l'e mplacement requis
MsgBox "Classeur - nomfichier.xls - Non ouvert..."
End
End If
End If
Certaines fois Excel ne bascule pas sur ce fichier quand il est déj à ouvert, et donc je perds les données que je devais récup érer dans celui-ci.
Y a-t-il une manière autre que celle-là pour que mon fichier so it bien activé et que je puisse continuer mon programme ?
Merci pour votre aide
Alf
Oui c'est sur W10.
Je vais essayer ce code Michel_D, et je te dirai.
Merci
Le samedi 7 septembre 2019 15:06:13 UTC+2, Alf a écrit :
Excel 2016 Dans une macro j'ouvre un autre fichier Excel de la manière suivante . On Error Resume Next Application.Windows("nomfichier.xls").Activate 'si le fichier est dé jà ouvert If Err.Number <> 0 Then On Error Resume Next Workbooks.Open " nomfichier.xls " Application.Windows(NomFichier).Activate If Err.Number <> 0 Then 'si le fichier ne se trouve pas à l'e mplacement requis MsgBox "Classeur - nomfichier.xls - Non ouvert..." End End If End If Certaines fois Excel ne bascule pas sur ce fichier quand il est déj à ouvert, et donc je perds les données que je devais récup érer dans celui-ci. Y a-t-il une manière autre que celle-là pour que mon fichier so it bien activé et que je puisse continuer mon programme ? Merci pour votre aide Alf
Oui c'est sur W10. Je vais essayer ce code Michel_D, et je te dirai. Merci