XL 2019 Modification macro

Quicksland

XLDnaute Occasionnel
Bonjour Sylvanu

Il y a quelques temps vous êtes intervenu sur un soucis que j'avais sur un fichier ( exécution macro a l ouverture du classeur)

Vous avez trouver une solution qui fonctionne super bien surtout que cette solution peut s'adapter a d'autres fichiers

J'ai un fichier " Synthèse d'heures " qui va rechercher les infos dans plusieurs fichiers source

jusque la tout fonctionne parfaitement

pour mémoire ci-dessous exemple du code

' Pour chaque jour il faut modifier les noms de :
' Chemin, NomFichier, NomOnglet, ainsi evidemment que le Tablo des adresses, exemple :
' Chemin = "C:\Users\LAURENT\Desktop\PROJET RP\MOIS\11 NOVEMBRE\" Nom du chemin, doit se terminer par \"
' NomFichier = "FEUILLE D'HEURES ANNE.xlsm" Nom du fichier à lire
' OngletLu = "FEUILLE D'HEURES" Nom de l'onglet à lire
' NomOnglet = "NOVEMBRE" Nom de l'onglet à écrire

' Déclaration tableau adresses. Ce tableau est organisé avec Plage à écrire, virgule, Plage à lire
Tablo = Array("C5", "C5", "D5", "D5", "E5", "E5", "F5", "F5", "G5", "G5", "H5", "H5", "I5", "I5", "J5", "J5", "K5", "K5")

' Mise à jour de l'onglet (macro dans ThisWorkbook )
UpdateSheet
End Sub
Sub UpdateSheet()
' NE PAS TOUCHER, c'est un module standard qui reçoit ses infos par les variables public.
' Met à jour l'onglet avec les données du fichier lu.
Fichier = Chemin & NomFichier ' Construction du nom complet du fichier à lire
Workbooks.Open Filename:=Fichier ' Ouverture du fichier à lire
Workbooks(CeFichier).Activate ' Activation classeur à écrire

With Workbooks(CeFichier).Sheets(NomOnglet) ' Avec le fichier à écrire

For i = 0 To UBound(Tablo) Step 2 ' Mise à jour des données
.Range(Tablo(i)) = Workbooks(NomFichier).Sheets(OngletLu).Range(Tablo(i + 1)) ' Ecriture de la donnée
Next i
End With
Workbooks(NomFichier).Close SaveChanges:=False ' Fermeture fichier source sans enregistrer
End Sub



Mais lorsque je supprime un fichier source , "FEUILLE D'HEURES ANNE.xlsm", a l'ouverture du fichier " Synthèse d'heures " l'userform " débogage " apparait !

ma question est il possible que lorsque un fichier source ou plusieurs son supprimer le code fonctionne quand même

Merci pour ton aide
 

Pièces jointes

  • SYNTHESE FEUILLE D'HEURES.xlsm
    79.9 KB · Affichages: 2
Solution
Bonjour,
Un essai avec :
VB:
Sub UpdateSheet()
    ' NE PAS TOUCHER, c'est un module standard qui reçoit ses infos par les variables public.
    ' Met à jour l'onglet avec les données du fichier lu.
    Fichier = Chemin & NomFichier                               ' Construction du nom complet du fichier à lire
    ' Vérifie si le fichier exsite, s'il n'existe pas on sort de cette macro UpdateSheet
    If Fichier = "" Or Len(Dir(Fichier)) = 0 Then Exit Sub
    ' S'il existe on continue.
    Workbooks.Open Filename:=Fichier                            ' Ouverture du fichier à lire
....

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour,
Un essai avec :
VB:
Sub UpdateSheet()
    ' NE PAS TOUCHER, c'est un module standard qui reçoit ses infos par les variables public.
    ' Met à jour l'onglet avec les données du fichier lu.
    Fichier = Chemin & NomFichier                               ' Construction du nom complet du fichier à lire
    ' Vérifie si le fichier exsite, s'il n'existe pas on sort de cette macro UpdateSheet
    If Fichier = "" Or Len(Dir(Fichier)) = 0 Then Exit Sub
    ' S'il existe on continue.
    Workbooks.Open Filename:=Fichier                            ' Ouverture du fichier à lire
....
 

Pièces jointes

  • SYNTHESE FEUILLE D'HEURES.xlsm
    77.2 KB · Affichages: 1

Quicksland

XLDnaute Occasionnel
Bonjour,
Un essai avec :
VB:
Sub UpdateSheet()
    ' NE PAS TOUCHER, c'est un module standard qui reçoit ses infos par les variables public.
    ' Met à jour l'onglet avec les données du fichier lu.
    Fichier = Chemin & NomFichier                               ' Construction du nom complet du fichier à lire
    ' Vérifie si le fichier exsite, s'il n'existe pas on sort de cette macro UpdateSheet
    If Fichier = "" Or Len(Dir(Fichier)) = 0 Then Exit Sub
    ' S'il existe on continue.
    Workbooks.Open Filename:=Fichier                            ' Ouverture du fichier à lire
....
Re
C'est parfait tout fonctionne parfaitement 👍

Je te remercie pour ta gentillesse et pour ton aide

Bravo pour tout
 

Quicksland

XLDnaute Occasionnel
Bonjour,
Un essai avec :
VB:
Sub UpdateSheet()
    ' NE PAS TOUCHER, c'est un module standard qui reçoit ses infos par les variables public.
    ' Met à jour l'onglet avec les données du fichier lu.
    Fichier = Chemin & NomFichier                               ' Construction du nom complet du fichier à lire
    ' Vérifie si le fichier exsite, s'il n'existe pas on sort de cette macro UpdateSheet
    If Fichier = "" Or Len(Dir(Fichier)) = 0 Then Exit Sub
    ' S'il existe on continue.
    Workbooks.Open Filename:=Fichier                            ' Ouverture du fichier à lire
....
Re ,
Apres réflexion serait-il possible que la macro se déclenche avec un bouton mise a jour au lieu d'une mise a jour a l'ouverture ?

Merci
 

Pièces jointes

  • SYNTHESE FEUILLE D'HEURES.xlsm
    81.5 KB · Affichages: 5

Staple1600

XLDnaute Barbatruc
Bonjour le fil,

Bonsoir max.lander

Merci a toi mais je souhaite avoir une réponse de @sylvanu qui connais parfaitement

le fichier car créer par lui même ;)

Merci
Pour info, sur un forum public, chacun est libre de répondre aux questions !!!
Sylvanu ou pas Sylvanu

Pour paraphraser cet enfant désormais devenu gand
"C'est quoi c'est nouveau type de membre du forum ?"

PS: Ils n'ont pas du boire le même lait que ce petit enfant de la pub :rolleyes:
 

Discussions similaires

Statistiques des forums

Discussions
315 080
Messages
2 116 020
Membres
112 637
dernier inscrit
pseudoinconnu