Probème de compilation de mon code

Bonjour et Bonne année pour tout le monde

J'ai un problème dans mon code, l'application consiste à copier des informations sur un fichier et les coller dans un autre fichier.

Autre chose, mon code va pas jusqu'au bout si je l'exécute sur un bouton ainsi que je veux faire un copier/coller simple sur Lien GDP mais j'arrive pas à le faire.

Cordialement

Sub Bdd_Source()
    Application.ScreenUpdating = False
    Application.Calculation = xlManual
    Application.DisplayAlerts = False

    classeur_base = ActiveWorkbook.Name
    repertoire = ActiveWorkbook.Path

    'nettoyage    
    'on choisi la Bdd source
        MsgBox ("Merci de sélectionner le classeur BdD Source")

    'ouvrir une fenetre pour choisir le fichier BdD Source à ouvrir
        classeur_source_full = Application.GetOpenFilename("Fichiers Excel (*.xl*), *.xl*")

    'Si le fichier excel choisit contient la BdD Source, on l'ouvre
        If InStr(1, classeur_source_full, "BdD Source") < 1 Then
             MsgBox ("Ce n'est le classeur de BdD Source")
            Exit Sub
        Else

            Workbooks.Open Filename:=classeur_source_full
            Sheets("BdD Source Auto").Select
            classeur_charge = ActiveWorkbook.Name
            repertoire = ActiveWorkbook.Path

        ' on copie la Bdd source auto
            Range("B3").FormulaR1C1 = "=COUNTA(R[3]C:R[999999]C)"
            nbproduits = Range("B3").Value
            Range("B3").ClearContents

        'Type de source, Winrate, ID, US, Client, Projet, Type de produit

            Sheets("BdD Source Auto").Select
            Sheets("BdD Source Auto").Range("A6:G" & nbproduits + 5).Copy
            Workbooks(classeur_base).Activate
            Sheets("Feuil2").Range("B6").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
                SkipBlanks:=False, Transpose:=False

          '  Workbooks(classeur_charge).Activate
           ' Sheets("BdD Source Auto").Range("E6:Z" & nbproduits + 5).Copy
           ' Workbooks(classeur_base).Activate
          '  Sheets("Feuil2").Range("G6").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
         '       SkipBlanks:=False, Transpose:=False

' Type de projet NTN-SNR
            Workbooks(classeur_charge).Activate
            Sheets("BdD Source Auto").Range("J6:J" & nbproduits + 5).Copy
            Workbooks(classeur_base).Activate
            Sheets("Feuil2").Range("I6").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
                SkipBlanks:=False, Transpose:=False

'Nombre de pièces IOD demandées

            Workbooks(classeur_charge).Activate
            Sheets("BdD Source Auto").Range("U6:W" & nbproduits + 5).Copy
               Workbooks(classeur_base).Activate
            Sheets("Feuil2").Range("J6").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
                SkipBlanks:=False, Transpose:=False

'Date de livraison JPC
            Workbooks(classeur_charge).Activate
            Sheets("BdD Source Auto").Range("Y6:Y" & nbproduits + 5).Copy
            Workbooks(classeur_base).Activate

            Sheets("Feuil2").Range("M6").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
                SkipBlanks:=False, Transpose:=False
                Sheets("Feuil2").Range("M6").NumberFormat = "dd/mm/yyyy"
'Chef de projet
            Workbooks(classeur_charge).Activate
            Sheets("BdD Source Auto").Range("K6:K" & nbproduits + 5).Copy
            Workbooks(classeur_base).Activate
            Sheets("Feuil2").Range("N6").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
                SkipBlanks:=False, Transpose:=False

 'Lien GDP
             Workbooks(classeur_charge).Activate
            Sheets("BdD Source Auto").Range("P6:P" & nbproduits + 5).Copy
            Workbooks(classeur_base).Activate
            Sheets("Feuil2").Range("O6").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
                SkipBlanks:=False, Transpose:=False

'FPI
            Workbooks(classeur_charge).Activate
            Sheets("BdD Source Auto").Range("I6:I" & nbproduits + 5).Copy
            Workbooks(classeur_base).Activate
            Sheets("Feuil2").Range("P6").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
                SkipBlanks:=False, Transpose:=False

    Sheets("Feuil2").Range("A6:A" & nbproduits + 5) = "Auto"

        'on compte le nb de lignes dans Bdd Source
            Workbooks(classeur_base).Activate
            Sheets("Feuil2").Range("A3").FormulaR1C1 = "=COUNTA(R[3]C:R[999999]C)"
            nbcellules = Sheets("Feuil2").Range("A3").Value
            Sheets("Feuil2").Range("A3").ClearContents

'---------------------------------------------- Indus ---------------------------------------------------------------------------------------------

' on copie la Bdd source indus
            Workbooks(classeur_charge).Activate
            Sheets("BdD Source Indus").Range("B3").FormulaR1C1 = "=COUNTA(R[3]C:R[999999]C)"
            nbproduits1 = Sheets("BdD Source Indus").Range("B3").Value
            Sheets("BdD Source Indus").Range("B3").ClearContents

             Workbooks(classeur_base).Activate
           Sheets("Feuil2").Range(Cells(nbcellules + 6, 1), Cells(nbproduits1 + nbcellules + 5, 1)) = "Indus"

            Workbooks(classeur_charge).Activate
            Sheets("BdD Source Indus").Range("A6:D" & nbproduits1 + 5).Copy
            Workbooks(classeur_base).Activate
            Sheets("Feuil2").Range("B" & nbcellules + 6).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
                SkipBlanks:=False, Transpose:=False

            'Sheets("Feuil2").Range("A" & nbcellules + 6) = "Indus"
            'Range(Cells(nbcellules + 6, 1), Cells(nbproduits1 + nbcellules + 5, 1)) = "Indus"

'on copie Client-projet-type de produit
              Workbooks(classeur_charge).Activate
            Sheets("BdD Source Indus").Range("F6:H" & nbproduits + 5).Copy
            Workbooks(classeur_base).Activate
            Sheets("Feuil2").Range("F" & nbcellules + 6).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
                SkipBlanks:=False, Transpose:=False

'Type de projet NTN-SNR
                Workbooks(classeur_charge).Activate
            Sheets("BdD Source Indus").Range("K6:K" & nbproduits + 5).Copy
            Workbooks(classeur_base).Activate
            Sheets("Feuil2").Range("I" & nbcellules + 6).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
                SkipBlanks:=False, Transpose:=False

'Nombre et date IOD
Workbooks(classeur_charge).Activate
            Sheets("BdD Source Indus").Range("S6:T" & nbproduits + 5).Copy
            Workbooks(classeur_base).Activate
            Sheets("Feuil2").Range("J" & nbcellules + 6).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
                SkipBlanks:=False, Transpose:=False
'Nombre JPC
Workbooks(classeur_charge).Activate
            Sheets("BdD Source Indus").Range("U6:U" & nbproduits + 5).Copy
            Workbooks(classeur_base).Activate
            Sheets("Feuil2").Range("L" & nbcellules + 6).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
                SkipBlanks:=False, Transpose:=False

'Date JPC
Workbooks(classeur_charge).Activate
            Sheets("BdD Source Indus").Range("W6:W" & nbproduits + 5).Copy
            Workbooks(classeur_base).Activate
            Sheets("Feuil2").Range("M" & nbcellules + 6).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
                SkipBlanks:=False, Transpose:=False

'Chef du projet

            Workbooks(classeur_charge).Activate
            Sheets("BdD Source Indus").Range("N6:N" & nbproduits1 + 5).Copy
            Workbooks(classeur_base).Activate
            Sheets("Feuil2").Range("N" & nbcellules + 6).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
                SkipBlanks:=False, Transpose:=False

'FPI
            Workbooks(classeur_charge).Activate
            Sheets("BdD Source Indus").Range("J6:J" & nbproduits + 5).Copy
            Workbooks(classeur_base).Activate
            Sheets("Feuil2").Range("P" & nbcellules + 6).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
                SkipBlanks:=False, Transpose:=False

'Lien GDP
            Workbooks(classeur_charge).Activate
            Sheets("BdD Source Indus").Range("V6:V" & nbproduits + 5).Copy
            Workbooks(classeur_base).Activate
            Sheets("Feuil2").Range("O" & nbcellules + 6).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
                SkipBlanks:=False, Transpose:=False

            ' on calcul le nb de  cellules non vides
            Workbooks(classeur_base).Activate
            Sheets("Feuil2").Range("A3").FormulaR1C1 = "=COUNTA(R[3]C:R[999999]C)"
            nbcellules = Sheets("Feuil2").Range("A3").Value
            Sheets("Feuil2").Range("A3").ClearContents

           For i = 1 To nbcellules + 10
           '     'si winrate=0, on éfface toute la ligne
                If Range("C" & i).Value = "0" Then Rows(i).EntireRow.ClearContents
            Next
            Calculate

            'on trie ensuite la colonne Domaine par ordre alphabétique en supprimant les lignes vides
            ActiveWorkbook.Worksheets("Feuil2").Sort.SortFields.Clear
            ActiveWorkbook.Worksheets("Feuil2").Sort.SortFields.Add Key:= _
                Range("A6"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
            With ActiveWorkbook.Worksheets("Feuil2").Sort
                .SetRange Range("A6:AE10000")
                .Header = xlGuess
                .MatchCase = False
                .Orientation = xlTopToBottom
                .SortMethod = xlPinYin
                .Apply
            End With
            Calculate

Workbooks(classeur_charge).Close False
Application.DisplayAlerts = True

        End If
End Sub

Bonjour,

Pour te faciliter la vie ... et celle de ceux qui voudront bien t'aider ... il serait plus judicieux de joindre ton fichier ...

Le voilà,

En gros, il faut que je fais copier/coller pour des données d'un fichier vers un autre fichier et puis il faut que je place automatiquement les données de la colonne N et la colonne J dans les mois correspondants.

Pour l'instant je concentre sur la manière de copier/coller des données ainsi que la dernière boucle que j'ai fais est correcte mais le macro ne l'exécute pas.

Re,

Merci pour les fichiers ...

Dès que j'ai un petit moment ... je plongerai dans tes macros ...

Bonjour,

En regardant rapidement ta macro...je crois deviner comment les choses se sont mises en place ...

Et j'ai donc deux remarques à te faire :

1. Félicitations ... pour ce que tu as entrepris de faire tout seul ... beaucoup de gens auraient abandonné ...

2. Pour bien faire ... et je crois que c'est ton objectif ... je vais devoir prendre un peu temps ... pour repartir du début ...

Re,

Il va de soi ... que sans le fichier initial qui contient les données à copier ... je n'ai pas pu tester le code revisité ...

Cependant, tu trouveras dans le fichier joint ... dans le module : mod_Bdd_source ... la première version amendée ...

Pour tout te dire, il me resterait bien quelques questions à clarifier ... Mais, une chose après l'autre ...

Il ne faut pas hésiter à me faire part de tous tes commentaires ...

Merci bien pour votre aide, je trouve votre code est efficace et compréhensible par rapport au code ce que j'ai écris, cependant j'ai un bug sur la ligne suivante et que je n'arrive pas surtout à remplir la colonne A avec le mot Indus :

' ' Remplir la Colonne A avec "Indus"
        w1.Sheets("Feuil2").Range(Cells(nbcellules + 6, 1), Cells(nbproduits1 + nbcellules + 5, 1)) = "Indus"

[/u]Ainsi que cette partie n'est pas inclus dans la compilation du code:

  For i = 1 To nbcellules + 10
                'si winrate=0, on efface toute la ligne
                If Range("C" & i).Value = "0" Then Rows(i).EntireRow.ClearContents
           Next i

          Calculate

            'on trie ensuite la colonne Domaine par ordre alphabétique en supprimant les lignes vides
            w1.Worksheets("Feuil2").Sort.SortFields.Clear
            w1.Worksheets("Feuil2").Sort.SortFields.Add Key:= _
                Range("A6"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
            With w1.Worksheets("Feuil2").Sort
                .SetRange Range("A6:AE10000")
                .Header = xlGuess
                .MatchCase = False
                .Orientation = xlTopToBottom
                .SortMethod = xlPinYin
                .Apply
            End With
            Calculate  

Re,

Comme je te l'ai dit ... dans mon message précédent ... le point que tu soulèves fait partie de mes questions ...

Et... quel est le véritable objectif du tri ... après suppression des lignes à zéro ...

Il va de soi ... que sans le fichier initial qui contient les données à copier ... je n'ai pas pu tester le code revisité ...

Donc, il ne faut pas hésiter à joindre ton fichier Bdd ...

l'objectif de supprimer c'est d'éliminer les projets dans le cas on trouve winrate=0, ça veut que se sont des projets pas intéressantes pour notre étude et après supprimer les winrate=0 on fait un trie pour que le résultat soit organisé pour nous.

Mais le premier problème ça consiste à coller le mot indus après le mot auto dans la colonne A.

Re,

Merci pour le fichier ...

Cela va me permettre de rapidement faire un test ...


Au niveau des winrates à 0 ... ne faut-il pas supprimer toute la ligne ... au lieu d'effacer uniquement les cellules de la ligne ...???


Ci-joint ton fichier test ...

Re,

J'avoue que votre code est excellent, la compilation pas à pas marche très bien mais au temps que je clique sur le bouton résultat je trouve que l'exécution du programme n'est pas parfait , il n'efface pas les WR=0 ainsi que la disparition des boutons sur la Feuil1 comme indiquée dans les photos jointes.

je sais d'où vient ce problème, j'ai vérifié au niveau du débogage pas à pas mais je n'arrive pas à le trouver.

Concernant les winrate, l'essentiel pour moi c'est d'effacer toute la ligne quand on trouve winrate=0 .

ET un grand merci pour le temps que vous avez consacrez pour moi afin de trouver les bonnes résultats.

img1 img2

Salut Lotfy,

L'avantage d'une macro ... c'est que soit elle fonctionne ... soit elle ne fonctionne pas ...

Donc, je ne comprends pas ce que tu dis ...

A la fin du code, toutes les lignes qui contiennent un winrate égal à 0 sont supprimées ... oui ou non ...???

Oui bien sur vouas avez raison et je suis convaincu que le code est bon mais au moment quand je clique sur le bouton Résultat pour exécuter le programme , je trouve pas les bonnes résultats, je sais pas si c'est un défaut au niveau de la version de l'Excel ou autre chose .

Avez vous exécuter le programme en cliquant sur le bouton Résultat sur la page d'accueil ?

Lotfi a écrit :

Oui bien sur vouas avez raison et je suis convaincu que le code est bon mais au moment quand je clique sur le bouton Résultat pour exécuter le programme , je trouve pas les bonnes résultats, je sais pas si c'est un défaut au niveau de la version de l'Excel ou autre chose .

Avez vous exécuter le programme en cliquant sur le bouton Résultat sur la page d'accueil ?

Lotfi,

Non ... je n'ai pas testé le bouton Résultat ...!!!

Je vais le faire tout de suite ... et je tiens au courant ...


Lotfi,

Je viens de comprendre ce que s'est passé ...

Comme je n'avais pas vu ce Menu de la première page ... dans le code, j'avais ajouté une séquence de "nettoyage" ...

Ci-joint ...cette version 2 corrigée devrait fonctionner normalement ...

Je vais devenir fou avec ce programme,

je sais pas d'où vient le problème au niveau de l'exécution c'est vraiment incompréhensible je trouve toujours le même résultats.

je comprends pas pk

Lotfi a écrit :

Je vais devenir fou avec ce programme,

je sais pas d'où vient le problème au niveau de l'exécution c'est vraiment incompréhensible je trouve toujours le même résultats.

je comprends pas pk

Lotfi,

Malheureusement .. tu as être plus précis ... pour que je comprenne ...

Que veut dire : " je trouve toujours le même résultat .."

Grâce à quoi vois-tu qu'il y a des erreurs ...???

Au fait sur le dernier fichier que vous avez fais:

je clique sur le bouton Résultat après je choisis le BdD mais dans le résultat je trouve toujours des Winrate=0 .

C'est ça je comprend pas, je vous demande si vous avez trouvez les bonnes résultats( cela veut dire qu'il y a pas des winrate=0) , peut être que mon pc est devenu fou ou bien y a des fantômes dedans

Re,

Merci Lotfi ... je vais pouvoir retourner tester ...

Re,

Je ne sais qui a "inventé" ... la première feuille ... mais c'est un vrai ....

Enfin ... l'essentiel c'est ta macro ...

Merci de tester cette dernière version ...

Re James

Je sais pas si ça marche ou pas chez vous mais pour moi ça marche plus même le bouton de la première feuil n'exécute plus.

ça marche pour vous ?

Rechercher des sujets similaires à "probeme compilation mon code"