Arrêt de la macro avant la fin

jamelie Messages postés 57 Date d'inscription mercredi 26 avril 2006 Statut Membre Dernière intervention 27 février 2008 - 27 févr. 2008 à 10:56
bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 - 27 févr. 2008 à 17:15
Jamelie

2 réponses

jamelie Messages postés 57 Date d'inscription mercredi 26 avril 2006 Statut Membre Dernière intervention 27 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" /??>



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


compiler ' c'est ma macro 2




Selection.Copy Destination:= wkbNew.Worksheets("Projets").Range("A5:CC800")


Application.DisplayAlerts = False


End Sub


------------------------------------------------------------------------------------------------------


Sub compiler()


fichierCompilation = "P:\Projets\VCM\Hygiene\compil\2007\essainouvelles compil\appli\Compilation.xls"


Workbooks.Open (fichierCompilation) ' le programme s'arrete la




End Sub




Si vous voulez plus de détails dites moi, je ne sais pas si j'ai été assez claire

D'avance merci de votre aide
Jamelie <?xml:namespace prefix v ns "urn:schemas-microsoft-com:vml" /??><v:shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><v:stroke joinstyle="miter"></v:stroke><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0"></v:f><v:f eqn="sum @0 1 0"></v:f><v:f eqn="sum 0 0 @1"></v:f><v:f eqn="prod @2 1 2"></v:f><v:f eqn="prod @3 21600 pixelWidth"></v:f><v:f eqn="prod @3 21600 pixelHeight"></v:f><v:f eqn="sum @0 0 1"></v:f><v:f eqn="prod @6 1 2"></v:f><v:f eqn="prod @7 21600 pixelWidth"></v:f><v:f eqn="sum @8 21600 0"></v:f><v:f eqn="prod @7 21600 pixelHeight"></v:f><v:f eqn="sum @10 21600 0"></v:f></v:formulas><v:path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></v:path><o:lock aspectratio="t" v:ext="edit"></o:lock></v:shapetype><v:shape id="_x0000_i1025" style="WIDTH: 11.25pt; HEIGHT: 11.25pt" alt="" type="#_x0000_t75"><v:imagedata o:href="http://www.vbfrance.com/imgs2/smile.gif" src="file:///C:\DOCUME~1\jacoba\LOCALS~1\Temp\msohtml1\01\clip_image001.gif"></v:imagedata></v:shape>



 
0
bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
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

Vala

A+
0
Rejoignez-nous