Vba - Lecture de fichier avec clause si trouve pas alors la macro continue
2 réponses
stormtroopertk1230
Bonjour,
Les 1ères réponses de la semaine passées n'ont pas fonctionnées.
J'explique de nouveau
En principe, j'ai un fichier mensuel par personne (Nbre dheure par tache), j'ai donc créé la liste
maximale reprenant toutes les personnes aux coordonnées i = 12 à 39.
Mais il se peut que plusieurs personnes n'ont pas de fichier à remplir pour certains mois.
Une fois que les fichiers sont ouverts, je voudrai que la macro puisse dire ce fichier n'existe pas et continue de lire les autres pour qu'elle puisse récupérer les données.
Ci-joint la macro.
Sub CopieDonnées()
Dim Chemin, Aire, NomFichier, NomceFichier, NoMois As String
Dim NoAnnee, NoMoisnum As Integer
Dim Wb As Workbook
Windows(NomFichier).Activate
Range("D60:H65").Select
Selection.Copy
Windows(NomceFichier).Activate
Sheets("Base" & NoMoisnum).Select
Application.Goto Reference:=Aire
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Base" & NoMoisnum).Calculate
Next
Sheets("Menu").Select
MsgBox " Copie des données effectuée " & Environ("username"), vbInformation + vbOKOnly, " Message "
End Sub
Je pensais à rajouter cette ligne de commande avant la ligne "Windows(NomFichier).Activate"
ci-jointe mais cela ne fonctionne pas correctement car la macro renvoi que le fichier n'existe pas alors qu'il existe bien et lorsque le fichier n'existe pas la macro s'arrête.
If Dir(NomFichier) <> "" Then
Else
MsgBox "Ce fichier """ & NomFichier & """ n'existe pas """
End If
Je pense n'être pas loin de la solution, mais là je bloque.
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
isabelle
bonjour Chris,
On Error Resume Next Windows(NomFichier).Activate If Err.Number <> 0 Then MsgBox "Ce fichier """ & NomFichier & """ n'est pas ouvert """ Err.Clear Else
End If
-- isabelle
Le 2012-02-02 09:53, stormtroopertk1230 a écrit :
Bonjour,
Les 1ères réponses de la semaine passées n'ont pas fonctionnées. J'explique de nouveau
En principe, j'ai un fichier mensuel par personne (Nbre dheure par tache), j'ai donc créé la liste maximale reprenant toutes les personnes aux coordonnées i = 12 à 39. Mais il se peut que plusieurs personnes n'ont pas de fichier à remplir pour certains mois. Une fois que les fichiers sont ouverts, je voudrai que la macro puisse dire ce fichier n'existe pas et continue de lire les autres pour qu'elle puisse récupérer les données.
Ci-joint la macro.
Sub CopieDonnées()
Dim Chemin, Aire, NomFichier, NomceFichier, NoMois As String Dim NoAnnee, NoMoisnum As Integer Dim Wb As Workbook
Windows(NomFichier).Activate Range("D60:H65").Select Selection.Copy Windows(NomceFichier).Activate Sheets("Base"& NoMoisnum).Select Application.Goto Reference:=Aire Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :úlse, Transpose:úlse Sheets("Base"& NoMoisnum).Calculate Next Sheets("Menu").Select MsgBox " Copie des données effectuée "& Environ("username"), vbInformation + vbOKOnly, " Message " End Sub
Je pensais à rajouter cette ligne de commande avant la ligne "Windows(NomFichier).Activate" ci-jointe mais cela ne fonctionne pas correctement car la macro renvoi que le fichier n'existe pas alors qu'il existe bien et lorsque le fichier n'existe pas la macro s'arrête. If Dir(NomFichier)<> "" Then Else MsgBox "Ce fichier """& NomFichier& """ n'existe pas """ End If Je pense n'être pas loin de la solution, mais là je bloque.
Merci de votre aide. Chris.
bonjour Chris,
On Error Resume Next
Windows(NomFichier).Activate
If Err.Number <> 0 Then
MsgBox "Ce fichier """ & NomFichier & """ n'est pas ouvert """
Err.Clear
Else
End If
--
isabelle
Le 2012-02-02 09:53, stormtroopertk1230 a écrit :
Bonjour,
Les 1ères réponses de la semaine passées n'ont pas fonctionnées.
J'explique de nouveau
En principe, j'ai un fichier mensuel par personne (Nbre dheure par tache), j'ai
donc créé la liste
maximale reprenant toutes les personnes aux coordonnées i = 12 à 39.
Mais il se peut que plusieurs personnes n'ont pas de fichier à remplir pour
certains mois.
Une fois que les fichiers sont ouverts, je voudrai que la macro puisse dire ce
fichier n'existe pas et continue de lire les autres pour qu'elle puisse
récupérer les données.
Ci-joint la macro.
Sub CopieDonnées()
Dim Chemin, Aire, NomFichier, NomceFichier, NoMois As String
Dim NoAnnee, NoMoisnum As Integer
Dim Wb As Workbook
Windows(NomFichier).Activate
Range("D60:H65").Select
Selection.Copy
Windows(NomceFichier).Activate
Sheets("Base"& NoMoisnum).Select
Application.Goto Reference:=Aire
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:úlse, Transpose:úlse
Sheets("Base"& NoMoisnum).Calculate
Next
Sheets("Menu").Select
MsgBox " Copie des données effectuée "& Environ("username"), vbInformation +
vbOKOnly, " Message "
End Sub
Je pensais à rajouter cette ligne de commande avant la ligne
"Windows(NomFichier).Activate"
ci-jointe mais cela ne fonctionne pas correctement car la macro renvoi que le
fichier n'existe pas alors qu'il existe bien et lorsque le fichier n'existe pas
la macro s'arrête.
If Dir(NomFichier)<> "" Then
Else
MsgBox "Ce fichier """& NomFichier& """ n'existe pas """
End If
Je pense n'être pas loin de la solution, mais là je bloque.
On Error Resume Next Windows(NomFichier).Activate If Err.Number <> 0 Then MsgBox "Ce fichier """ & NomFichier & """ n'est pas ouvert """ Err.Clear Else
End If
-- isabelle
Le 2012-02-02 09:53, stormtroopertk1230 a écrit :
Bonjour,
Les 1ères réponses de la semaine passées n'ont pas fonctionnées. J'explique de nouveau
En principe, j'ai un fichier mensuel par personne (Nbre dheure par tache), j'ai donc créé la liste maximale reprenant toutes les personnes aux coordonnées i = 12 à 39. Mais il se peut que plusieurs personnes n'ont pas de fichier à remplir pour certains mois. Une fois que les fichiers sont ouverts, je voudrai que la macro puisse dire ce fichier n'existe pas et continue de lire les autres pour qu'elle puisse récupérer les données.
Ci-joint la macro.
Sub CopieDonnées()
Dim Chemin, Aire, NomFichier, NomceFichier, NoMois As String Dim NoAnnee, NoMoisnum As Integer Dim Wb As Workbook
Windows(NomFichier).Activate Range("D60:H65").Select Selection.Copy Windows(NomceFichier).Activate Sheets("Base"& NoMoisnum).Select Application.Goto Reference:=Aire Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :úlse, Transpose:úlse Sheets("Base"& NoMoisnum).Calculate Next Sheets("Menu").Select MsgBox " Copie des données effectuée "& Environ("username"), vbInformation + vbOKOnly, " Message " End Sub
Je pensais à rajouter cette ligne de commande avant la ligne "Windows(NomFichier).Activate" ci-jointe mais cela ne fonctionne pas correctement car la macro renvoi que le fichier n'existe pas alors qu'il existe bien et lorsque le fichier n'existe pas la macro s'arrête. If Dir(NomFichier)<> "" Then Else MsgBox "Ce fichier """& NomFichier& """ n'existe pas """ End If Je pense n'être pas loin de la solution, mais là je bloque.
Merci de votre aide. Chris.
stormtroopertk1230
isabelle a écrit le 02/02/2012 à 19h28 :
bonjour Chris,
On Error Resume Next Windows(NomFichier).Activate If Err.Number <> 0 Then MsgBox "Ce fichier """ & NomFichier & """ n'est pas ouvert """ Err.Clear Else
End If
-- isabelle
Le 2012-02-02 09:53, stormtroopertk1230 a écrit :
Bonjour,
Les 1ères réponses de la semaine passées n'ont pas fonctionnées. J'explique de nouveau
En principe, j'ai un fichier mensuel par personne (Nbre dheure par tache), j'ai donc créé la liste maximale reprenant toutes les personnes aux coordonnées i = 12 à 39. Mais il se peut que plusieurs personnes n'ont pas de fichier à remplir pour certains mois. Une fois que les fichiers sont ouverts, je voudrai que la macro puisse dire ce fichier n'existe pas et continue de lire les autres pour qu'elle puisse récupérer les données.
Ci-joint la macro.
Sub CopieDonnées()
Dim Chemin, Aire, NomFichier, NomceFichier, NoMois As String Dim NoAnnee, NoMoisnum As Integer Dim Wb As Workbook
Windows(NomFichier).Activate Range("D60:H65").Select Selection.Copy Windows(NomceFichier).Activate Sheets("Base"& NoMoisnum).Select Application.Goto Reference:=Aire Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :úlse, Transpose:úlse Sheets("Base"& NoMoisnum).Calculate Next Sheets("Menu").Select MsgBox " Copie des données effectuée "& Environ("username"), vbInformation + vbOKOnly, " Message " End Sub
Je pensais à rajouter cette ligne de commande avant la ligne "Windows(NomFichier).Activate" ci-jointe mais cela ne fonctionne pas correctement car la macro renvoi que le fichier n'existe pas alors qu'il existe bien et lorsque le fichier n'existe pas la macro s'arrête. If Dir(NomFichier)<> "" Then Else MsgBox "Ce fichier """& NomFichier& """ n'existe pas """ End If Je pense n'être pas loin de la solution, mais là je bloque.
Merci de votre aide. Chris.
Merci Isa :-)
ça fonctionne très bien. Super :-)
@+, Chris.
isabelle a écrit le 02/02/2012 à 19h28 :
bonjour Chris,
On Error Resume Next
Windows(NomFichier).Activate
If Err.Number <> 0 Then
MsgBox "Ce fichier """ & NomFichier &
""" n'est pas ouvert """
Err.Clear
Else
End If
--
isabelle
Le 2012-02-02 09:53, stormtroopertk1230 a écrit :
Bonjour,
Les 1ères réponses de la semaine passées n'ont pas
fonctionnées.
J'explique de nouveau
En principe, j'ai un fichier mensuel par personne (Nbre dheure par tache),
j'ai
donc créé la liste
maximale reprenant toutes les personnes aux coordonnées i = 12 à
39.
Mais il se peut que plusieurs personnes n'ont pas de fichier à remplir
pour
certains mois.
Une fois que les fichiers sont ouverts, je voudrai que la macro puisse dire ce
fichier n'existe pas et continue de lire les autres pour qu'elle puisse
récupérer les données.
Ci-joint la macro.
Sub CopieDonnées()
Dim Chemin, Aire, NomFichier, NomceFichier, NoMois As String
Dim NoAnnee, NoMoisnum As Integer
Dim Wb As Workbook
Windows(NomFichier).Activate
Range("D60:H65").Select
Selection.Copy
Windows(NomceFichier).Activate
Sheets("Base"& NoMoisnum).Select
Application.Goto Reference:=Aire
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:úlse, Transpose:úlse
Sheets("Base"& NoMoisnum).Calculate
Next
Sheets("Menu").Select
MsgBox " Copie des données effectuée "&
Environ("username"), vbInformation +
vbOKOnly, " Message "
End Sub
Je pensais à rajouter cette ligne de commande avant la ligne
"Windows(NomFichier).Activate"
ci-jointe mais cela ne fonctionne pas correctement car la macro renvoi que le
fichier n'existe pas alors qu'il existe bien et lorsque le fichier n'existe
pas
la macro s'arrête.
If Dir(NomFichier)<> "" Then
Else
MsgBox "Ce fichier """& NomFichier&
""" n'existe pas """
End If
Je pense n'être pas loin de la solution, mais là je bloque.
On Error Resume Next Windows(NomFichier).Activate If Err.Number <> 0 Then MsgBox "Ce fichier """ & NomFichier & """ n'est pas ouvert """ Err.Clear Else
End If
-- isabelle
Le 2012-02-02 09:53, stormtroopertk1230 a écrit :
Bonjour,
Les 1ères réponses de la semaine passées n'ont pas fonctionnées. J'explique de nouveau
En principe, j'ai un fichier mensuel par personne (Nbre dheure par tache), j'ai donc créé la liste maximale reprenant toutes les personnes aux coordonnées i = 12 à 39. Mais il se peut que plusieurs personnes n'ont pas de fichier à remplir pour certains mois. Une fois que les fichiers sont ouverts, je voudrai que la macro puisse dire ce fichier n'existe pas et continue de lire les autres pour qu'elle puisse récupérer les données.
Ci-joint la macro.
Sub CopieDonnées()
Dim Chemin, Aire, NomFichier, NomceFichier, NoMois As String Dim NoAnnee, NoMoisnum As Integer Dim Wb As Workbook
Windows(NomFichier).Activate Range("D60:H65").Select Selection.Copy Windows(NomceFichier).Activate Sheets("Base"& NoMoisnum).Select Application.Goto Reference:=Aire Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :úlse, Transpose:úlse Sheets("Base"& NoMoisnum).Calculate Next Sheets("Menu").Select MsgBox " Copie des données effectuée "& Environ("username"), vbInformation + vbOKOnly, " Message " End Sub
Je pensais à rajouter cette ligne de commande avant la ligne "Windows(NomFichier).Activate" ci-jointe mais cela ne fonctionne pas correctement car la macro renvoi que le fichier n'existe pas alors qu'il existe bien et lorsque le fichier n'existe pas la macro s'arrête. If Dir(NomFichier)<> "" Then Else MsgBox "Ce fichier """& NomFichier& """ n'existe pas """ End If Je pense n'être pas loin de la solution, mais là je bloque.