jamelie
Messages postés57Date d'inscriptionmercredi 26 avril 2006StatutMembreDernière intervention27 février 2008 27 févr. 2008 à 11:05
Bonjour à tous désolée tout mon message s'est effacé (donc je recommence)
Je dispose d'un bouton dans excel qui appelle une macro (macro 1) qui permet de lancer une autre macro (macro 2 ) qui va permettre de récupérer des données qui vont êtres traitées par la suite du code de la macro 1.
Le problème c'est que ma macro 1 et ma macro 2 se lancent mais après la macro 2 tout s'arrete sans que la fin du code s'applique. Je ne comprend pas d'ou cela peut provenir, si vous avez une idée.
Je vous joint une partie de mon code, cela peut aiderSub phase1() ' c'est mon bouton<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>
bigfish_le vrai
Messages postés1835Date d'inscriptionvendredi 13 mai 2005StatutMembreDernière intervention20 novembre 201315 27 févr. 2008 à 17:15
Salut,
essaye ca et vois ce qui ce passe :
En bleu ce qui a ete ajouté ou changé, les commentaire en vert
Option Explicit 'pour t'obliger a declarer tes variables
Dim Test As String 'doit etre declaré en tete du module
Sub phase1() ' c'est mon bouton
ChDir (ThisWorkbook.Path) nomFichiertraite
= Application.GetOpenFilename("Classeur Microsoft Excel (*.xls),*.xls",
1, "Sélectionner l'ancien fichier VCM hygiène")
If nomFichiertraite = False Then Exit Sub Workbooks.Open nomFichiertraite Set wkbNew = Workbooks(Workbooks.Count) nomFichierSortie = Application.GetSaveAsFilename("", "Classeur MiscrosoftExcel (*.xls), *.xls", 1, _
"Nouveau fichier: resélectionnez le fichier et modifiez la date uniquement") If nomFichierSortie = False Then Exit Sub wkbNew.SaveAs (nomFichierSortie) wkbNew.Activate'ne sert a rien car le fichier que tu vas ouvrir juste apres deviendra automatiquement l'objet actif
compiler ' c'est ma macro 2 'dans la ligne suivante la Selection courante est le fichier nouvellement ouvert c'est a dire Compilation.xls donc la copy ne peu pas marché Selection.Copy Destination:= wkbNew.Worksheets("Projets").Range("A5:CC800") 'si tu veux transferer des données du fichier Compilation.xls dans le fichier wbkNew remplace la ligne precedente par ceci :
If Test = "" Then Exit Sub
wkbNew.Worksheets("Projets").Range("A5:CC800") .Value = Sheets("feuil1").Range("A5:CC800").Value 'ici je suppose que la feuille qui contient les
'données s'appel feuil1 Attention cette methode fonctionne que si la plage de destination a meme taille et meme forme que la plage source
Application.DisplayAlerts = False ' Pourquoi ?
End Sub
Sub compiler() Dim Chemin As String , FichierCompilation As String
Chemin = "P:\Projets\VCM\Hygiene\compil\2007\essainouvelles compil\appli" FichierCompilation = "Compilation.xls" test = Dir(Chemin & FichierCompilation) 'permet de tester l'existance du fichier et du chemin If Test = "" then'si test est vide c'est que soit le chemin ou soit le fichier n'on pas ete trouvé
MsgBox "Fichier " & FichierCompilation & " non trouvé !", VbExclamation
Else
Workbooks.Open (fChemin & FichierCompilation) End If
End Sub