IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

la macro ne s'execute pas en entier


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 73
    Par défaut la macro ne s'execute pas en entier
    Bonsoir à tous.

    Je viens de créer à l'aide de plusieurs posts une macro qui me permet d'ouvrir un fichier de l'enregistrer sous un autre nom, puis de lancer une autre macro (qu on appellera macro 2)dont la sortie sera copiée et collée dans le nouveau fichier crée préalablement. le hic c'est que tout se passe bien jusqu'à ce que la macro 2 (qui provien d'un autre fichier) s'execute. Elle s'execute c'est bien, mais tout le code qui devrait copier et coller les données après ne fonctionne pas . C'est à dire que ma macro s'arrete en plein milieu et ne copie pas les données.

    Voici un morceau de mon code.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    Sub phase1()
     
    'code pour ouvrir et enregistrer sous un autre nom un fichier
    ...
     
     ' macro 2
    fichierCompilation = "P:\Projets\VCM\Hygiene\compil\2007\essainouvelles compil\appli\compilation.xls"
    Workbooks.Open fichierCompilation
     
    ' et la c est tt le code qui ne s'execute pas    
    Windows("compil_*.xls").Activate
    Range("A5:CC660").Select
    Range("CC660").Activate
    Application.CutCopyMode = False
    Selection.Copy
    Windows("VCM 2007 hygiène_new_mois12 le 31.xls").Activate
    Sheets("projets").Select
    Rows("5:658").Select
    Range("B5").Activate
    ActiveSheet.Paste
    Selection.Copy
    Workbooks(nomFichierSortie).Worksheets("Projets").Activate
    Cells.Select
    Selection.Clear
    ActiveSheet.Paste
     
    End Sub
    Si quelqun à une idée qu'il n'hésite pas parce que la je comprend pas du tout ce qui cloche.

    D'avance merci

    Jamelie

  2. #2
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Bonsoir,

    Enlève le 2àme selection.copy ...

  3. #3
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 73
    Par défaut
    bah ca marche po quand même

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Bonjour

    La ligne
    pose problème lors du collage, sinon, il semble que le copier/coller s'effectue sans problème...

    Je suppose que ton code provient de copier/coller de codes réalisés avec l'enregistreur de macros... Le problème, c'est que l'enregistreur produit souvent un code merd*. (Et dire qu'on le conseille aux débutants...)

    Lorsque c'est possible, il est préférable d'utiliser la syntaxe suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Range("A5:CC660").Copy Destination:=...
    qui est beaucoup plus claire à lire et à déboguer... et qui évite plein de lignes superflues...

    Ok?
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  5. #5
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 73
    Par défaut
    Bonjour, j'ai essayé ce que tu m'as dit mais ca ne fonctionne toujours pas.
    Effectivement pour obtenir le code pour copier et coller les données j'avais utilisé l'enregistreur de macros.

    Je remets le bout de code que j'ai modifié. J'ai probablement fais une erreur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Sub phase1()
    ...
    wkbNew.Activate
     
    fichierCompilation = "P:\Projets\VCM\Hygiene\compil\2007\essainouvelles compil\appli\compilation.xls"
    Workbooks.Open fichierCompilation
     
    Range("A5:CC660").Copy Destination:=Workbooks(nomFichierSortie).Worksheets("Projets").Range("A5:CC800")
     
    End Sub
    Merci d'avoir essayé de m'aider.

    Jamelie

  6. #6
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 73
    Par défaut
    je vien de m'appercevoir que dans ma macro compilation le code s'arrete ici:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Sub compilation()
    ...
     
    Workbooks.Open NomFichier
    Application.DisplayAlerts = False
    Workbooks("Compilation.xls").Close 
    'une fois que le fichier compilation se ferme, il ne se passe plus rien
    'même cette dernière ligne ne s'execute pas
    Workbooks(NomFichier).Worksheets("Feuil1").Activate
    je pense que le problème pourrait venir d'ici mais je vois pas trop ce qui ne va pas

  7. #7
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 73
    Par défaut
    je bloque carrément, j'ai toujours pas trouvé ce qui ne va pas. J'ai essayé de faire une bloucle if disant que si le fichier a est ouvert alors il faut copier et coller les données dans le fichier b désigné. Voici le code, je l'ai trouvé sur le forum.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
    Function GetClasseur(Nom As Variant) As Workbook
        Dim wk As Workbook
     
        For Each wk In Workbooks
            If UCase(wk.FullName) = UCase(Nom) Then
                Set GetClasseur = wk
                Exit For
            End If
        Next wk
        Set wk = Nothing
    End Function
     
    Sub OuvrirClasseur()
    Dim ladate As String
    Dim MyDate, MyDay, MyMonth, MyYear As Integer
     
    MyDate = Date
    MyDay = Day(Date)
    MyMonth = Month(Date)
    MyYear = Right(Year(Date), 2)
     
    ladate = Format(MyDate, "ddmmyy")
     
    Dim NomClasseur1, NomClasseur2, NomClasseur3 As Variant
    Dim wk As Workbook
     
        NomClasseur1 = "P:\...\compil_" & ladate & ".xls"
        NomClasseur2 = "P:\...\Appli\Compilation.xls"
        NomClasseur3 = "P:\...\VCM 2007 hygiène_new_mois * .xls"
     
        Set wk = GetClasseur(NomClasseur1)
        If wk Is Nothing Then
            Workbooks(NomClasseur2).Close
            Else
            wk.ActiveSheet
            Selection.Copy Destination:=Workbooks(NomClasseur3).Worksheets("Projets").Range("A5:CC800")
     
        End If
    End Sub
    Mais ça ne change rien visiblement puisque mon fichier compilation se ferme et que la plage selectionnée ne se copie pas dans mon autre fichier.

    est ce que quelqu'un aurait une idée svp?

    Jamelie

Discussions similaires

  1. Macro ne s'execute pas
    Par daddygraffiti dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 12/08/2013, 21h16
  2. Réponses: 4
    Dernier message: 24/12/2008, 11h10
  3. Macro simpliste qui ne s'execute pas.
    Par klowba dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 20/09/2007, 15h42
  4. La macro ne s'execute pas ?
    Par Tomate1999 dans le forum VBScript
    Réponses: 2
    Dernier message: 02/01/2007, 16h09
  5. Macro qui ne s'exécute pas dans formulaire
    Par picatchou dans le forum Access
    Réponses: 10
    Dernier message: 18/09/2006, 17h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo