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 :

Procédure trop grande


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Gestionnaire
    Inscrit en
    Mai 2018
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 47
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2018
    Messages : 10
    Par défaut Procédure trop grande
    Bonjour,

    je suis débutante dans la matière, après avoir finaliser une macro, VBA m'indique "PROCÉDURE TROP GRANDE".
    je pense que c'est mes declarations sont trop lonues cela se corse pour moi....

    le début 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
    Sub Edite_facture()
    Dim deb
    Dim fin
    Dim i
    Dim Ligne As Long
    Dim X
    Sheets("Feuil3").Activate
    deb = Sheets("Feuil3").Range("Debut_facturation").Item(1).Value
    fin = Sheets("Feuil3").Range("Fin_facturation").Item(1).Value
    For i = deb To fin
     Call Genere_facture(i)
    Next
    End Sub
    Ensuite, je pense qu'il y a trop de declarations:

    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    Sub Genere_facture(combinaison)
    Dim li_sol, col_sol
    Dim onglet
     
    Dim Number_1, Number_2, Number_3, Number_4, Number_5, Number_6, Number_7, Number_8, Number_9, Number_10, Number_11, Number_12, Number_13, Number_14, Number_15, Number_16, Number_17, Number_18, Number_19, Number_20 As Integer
    Dim Number_21, Number_22, Number_23, Number_24, Number_25, Number_26, Number_27, Number_28, Number_29, Number_30, Number_31, Number_32, Number_33, Number_34, Number_35, Number_36, Number_37, Number_38, Number_39, Number_40 As Integer
    Dim Number_41, Number_42, Number_43, Number_44, Number_45, Number_46, Number_47, Number_48, Number_49, Number_50, Number_51, Number_52, Number_53, Number_54, Number_55, Number_56, Number_57, Number_58, Number_59, Number_60 As Integer
    Dim Number_61, Number_62, Number_63, Number_64, Number_65, Number_66, Number_67, Number_68, Number_69, Number_70, Number_71, Number_72, Number_73, Number_74, Number_75 As Integer
     
        Number_1 = qq
        Number_2 = RR
        Number_3 = SS
        Number_4 = UU
        Number_5 = VV
        Number_6 = XX
        Number_7 = AA
        Number_8 = AB
        Number_9 = AC
        Number_10 = AD
        Number_11 = AE
        Number_12 = AF
        Number_13 = AG
        Number_14 = AH
        Number_15 = AI
        Number_16 = AJ
        Number_17 = AK
        Number_18 = AL
        Number_19 = AM
        Number_20 = AN
        Number_21 = A0
        Number_22 = AP
        Number_23 = AQ
        Number_24 = AR
        Number_25 = C44
        Number_26 = AT
        Number_27 = AU
        Number_28 = AV
        Number_29 = AW
        Number_30 = AX
        Number_31 = AY
        Number_32 = AZ
        Number_33 = BA
        Number_34 = bb
        Number_35 = BC
        Number_36 = BD
        Number_37 = BE
        Number_38 = AF
        Number_39 = BG
        Number_40 = BH
        Number_41 = BI
        Number_42 = BJ
        Number_43 = BK
        Number_44 = BL
        Number_45 = BM
        Number_46 = BN
        Number_47 = BO
        Number_48 = BO
        Number_49 = BQ
        Number_50 = BR
        Number_51 = BS
        Number_52 = BT
        Number_53 = BU
        Number_54 = BV
        Number_55 = BT
        Number_56 = BX
        Number_57 = BY
        Number_58 = BZ
        Number_59 = CA
        Number_60 = CB
        Number_61 = CC
        Number_62 = CDr
        Number_63 = CE
        Number_64 = CF
        Number_65 = CG
        Number_66 = CH
        Number_67 = CI
        Number_68 = CJ
        Number_69 = CK
        Number_70 = CL
        Number_71 = CM
        Number_72 = CN
        Number_73 = CO
        Number_74 = CP
        Number_75 = CK
    la suite 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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
     
     
    Facture_titulaire = CStr(Sheets("Feuil3").Range("Annee").Item(combinaison).Value) & _
    "-" & Sheets("Feuil3").Range("Num_facture").Item(combinaison).Value & _
    "-" & Left(CStr(Sheets("Feuil3").Range("RECUP_ONGLET_KADER").Item(combinaison).Value), 4) & _
    "-" & Left(CStr(Sheets("Feuil3").Range("TITULAIRE").Item(combinaison).Value), 7)
     
    Fichier_facture = CStr(Sheets("Feuil3").Range("Annee").Item(combinaison).Value) & _
    "-" & Sheets("Feuil3").Range("Num_facture").Item(combinaison).Value & _
    "-" & CStr(Sheets("Feuil3").Range("RECUP_ONGLET_KADER").Item(combinaison).Value)
     
     
    If Sheets("Feuil3").Range("Type_facture").Item(combinaison).Value = "FAB" Then
    'Création d''une copie de la trame de Facture
        Sheets("Trame-Suivi").Activate
        Sheets("Trame-Suivi").Copy After:=Sheets(Sheets.Count)
        Sheets("Trame-Suivi (2)").Name = Facture_titulaire
     
        Sheets(Facture_titulaire).Cells(4, 2).Value = Sheets("Feuil3").Range("TITULAIRE").Item(combinaison).Value
        Sheets(Facture_titulaire).Cells(5, 2).Value = Sheets("Feuil3").Range("ADRESSE").Item(combinaison).Value
        Sheets(Facture_titulaire).Cells(6, 2).Value = Sheets("Feuil3").Range("CP_VILLE").Item(combinaison).Value
        'Sheets(Facture_titulaire).Cells(10, 2).Value = Sheets("Feuil3").Range("ADRESSE_Mail").Item(combinaison).Value
        Sheets(Facture_titulaire).Cells(8, 2).Value = Sheets("Feuil3").Range("Date_facture").Item(combinaison).Value
        Sheets(Facture_titulaire).Cells(4, 5).Value = Sheets("Feuil3").Range("N°COMPTE_CLIENT").Item(combinaison).Value
        Sheets(Facture_titulaire).Cells(5, 5).Value = Sheets("Feuil3").Range("Type_facture").Item(combinaison).Value
     
        Sheets(Facture_titulaire).Cells(2, 1).Value = combinaison
     
        Sheets(Facture_titulaire).Cells(14, 7).Value = Sheets("Feuil3").Range("NF_DA_FRAIS_DE_FONCTIONNEMENT").Item(combinaison).Value
        Sheets(Facture_titulaire).Cells(14, 1).Value = Sheets("Feuil3").Range("CODE_ARTICLE1").Item(combinaison).Value
        Sheets(Facture_titulaire).Cells(14, 2).Value = Sheets("Feuil3").Range("TEXTE1").Item(combinaison).Value
        Sheets(Facture_titulaire).Cells(14, 4).Value = Sheets("Feuil3").Range("CERTIF1").Item(combinaison).Value
        Sheets(Facture_titulaire).Cells(14, 5).Value = Sheets("Feuil3").Range("_1PRODUITS").Item(combinaison).Value
        Sheets(Facture_titulaire).Cells(14, 9).Value = Sheets("Feuil3").Range("NF_DA_FRAIS_DE_FONCTIONNEMENT").Item(combinaison).Value
     
        Sheets(Facture_titulaire).Cells(15, 7).Value = Sheets("Feuil3").Range("NF_DA_FRAIS_DE_FONCTIONNEMENT_SUR_INSERT__DE_LEVAGE__Registre_sous_format_Excel").Item(combinaison).Value
        Sheets(Facture_titulaire).Cells(15, 1).Value = Sheets("Feuil3").Range("CODE_ARTICLE1").Item(combinaison).Value
        Sheets(Facture_titulaire).Cells(15, 2).Value = Sheets("Feuil3").Range("TEXTE5").Item(combinaison).Value
        Sheets(Facture_titulaire).Cells(15, 4).Value = Sheets("Feuil3").Range("CERTIF1").Item(combinaison).Value
        Sheets(Facture_titulaire).Cells(15, 5).Value = Sheets("Feuil3").Range("_1PRODUITS").Item(combinaison).Value
        Sheets(Facture_titulaire).Cells(15, 9).Value = Sheets("Feuil3").Range("NF_DA_FRAIS_DE_FONCTIONNEMENT_SUR_INSERT__DE_LEVAGE__Registre_sous_format_Excel").Item(combinaison).Value
     
        Sheets(Facture_titulaire).Cells(16, 7).Value = Sheets("Feuil3").Range("NF_DA_Promotion_de_la_marque_NF___mise_à_jour_de_la_base_de_données").Item(combinaison).Value
        Sheets(Facture_titulaire).Cells(16, 1).Value = Sheets("Feuil3").Range("CODE_ARTICLE1").Item(combinaison).Value
        Sheets(Facture_titulaire).Cells(16, 2).Value = Sheets("Feuil3").Range("TEXTE4").Item(combinaison).Value
        Sheets(Facture_titulaire).Cells(16, 4).Value = Sheets("Feuil3").Range("CERTIF1").Item(combinaison).Value
        Sheets(Facture_titulaire).Cells(16, 5).Value = Sheets("Feuil3").Range("_1PRODUITS").Item(combinaison).Value
        Sheets(Facture_titulaire).Cells(16, 9).Value = Sheets("Feuil3").Range("NF_DA_Promotion_de_la_marque_NF___mise_à_jour_de_la_base_de_données").Item(combinaison).Value
     
        Worksheets(1).Range("T14:T200").Value = Number_1 + Number_2 + Number_3
        Sheets(Facture_titulaire).Cells(17, 9).Value = Sheets("Feuil3").Range("NF_DA_SOUS_TOTAL_FONCTIONNEMENT").Item(combinaison).Value
        Sheets(Facture_titulaire).Cells(17, 2).Value = Sheets("Feuil3").Range("TEXTE8").Item(combinaison).Value
        Sheets(Facture_titulaire).Cells(17, 1).Value = Sheets("Feuil3").Range("CODE_ARTICLE1").Item(combinaison).Value
        Sheets(Facture_titulaire).Cells(17, 5).Value = Sheets("Feuil3").Range("_1PRODUITS").Item(combinaison).Value
        Sheets(Facture_titulaire).Cells(17, 4).Value = Sheets("Feuil3").Range("CERTIF1").Item(combinaison).Value
        Sheets(Facture_titulaire).Cells(17, 3).Value = Sheets("Feuil3").Range("A_NF_CODE_OTP").Item(combinaison).Value
        Cells(17, 9).Font.ColorIndex = 3
        Cells(17, 4).Font.ColorIndex = 3
        Cells(17, 5).Font.ColorIndex = 3
        Cells(17, 2).Font.ColorIndex = 3
     
        Sheets(Facture_titulaire).Cells(18, 7).Value = Sheets("Feuil3").Range("NF_DA_FRAIS_D_AUDIT").Item(combinaison).Value
        Sheets(Facture_titulaire).Cells(18, 1).Value = Sheets("Feuil3").Range("CODE_ARTICLE2").Item(combinaison).Value
        Sheets(Facture_titulaire).Cells(18, 2).Value = Sheets("Feuil3").Range("TEXTE2").Item(combinaison).Value
        Sheets(Facture_titulaire).Cells(18, 4).Value = Sheets("Feuil3").Range("CERTIF1").Item(combinaison).Value
        Sheets(Facture_titulaire).Cells(18, 5).Value = Sheets("Feuil3").Range("_1PRODUITS").Item(combinaison).Value
        Sheets(Facture_titulaire).Cells(18, 9).Value = Sheets("Feuil3").Range("NF_DA_FRAIS_D_AUDIT").Item(combinaison).Value
     
        Sheets(Facture_titulaire).Cells(19, 7).Value = Sheets("Feuil3").Range("NF_DA_FRAIS_D_AUDIT_SUR__INSERT_DE_LEVAGE").Item(combinaison).Value
        Sheets(Facture_titulaire).Cells(19, 1).Value = Sheets("Feuil3").Range("CODE_ARTICLE2").Item(combinaison).Value
        Sheets(Facture_titulaire).Cells(19, 2).Value = Sheets("Feuil3").Range("TEXTE5").Item(combinaison).Value
        Sheets(Facture_titulaire).Cells(19, 4).Value = Sheets("Feuil3").Range("CERTIF1").Item(combinaison).Value
        Sheets(Facture_titulaire).Cells(19, 5).Value = Sheets("Feuil3").Range("_1PRODUITS").Item(combinaison).Value
        Sheets(Facture_titulaire).Cells(19, 9).Value = Sheets("Feuil3").Range("NF_DA_FRAIS_D_AUDIT_SUR__INSERT_DE_LEVAGE").Item(combinaison).Value
     
        Worksheets(1).Range(("W14:W200")).Value = Number_4 + Number_5
        Sheets(Facture_titulaire).Cells(20, 9).Value = Sheets("Feuil3").Range("NF_DA_SOUS_TOTAL_AUDIT").Item(combinaison).Value
        Sheets(Facture_titulaire).Cells(20, 2).Value = Sheets("Feuil3").Range("TEXTE9").Item(combinaison).Value
        Sheets(Facture_titulaire).Cells(20, 1).Value = Sheets("Feuil3").Range("CODE_ARTICLE2").Item(combinaison).Value
        Sheets(Facture_titulaire).Cells(20, 5).Value = Sheets("Feuil3").Range("_1PRODUITS").Item(combinaison).Value
        Sheets(Facture_titulaire).Cells(20, 4).Value = Sheets("Feuil3").Range("CERTIF1").Item(combinaison).Value
         Sheets(Facture_titulaire).Cells(20, 3).Value = Sheets("Feuil3").Range("A_NF_CODE_OTP").Item(combinaison).Value
        Cells(20, 9).Font.ColorIndex = 3
        Cells(20, 4).Font.ColorIndex = 3
        Cells(20, 5).Font.ColorIndex = 3
        Cells(20, 2).Font.ColorIndex = 3
    et cela plusieurs fois ....car données différents

  2. #2
    Membre éprouvé Avatar de Wololol
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2018
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2018
    Messages : 104
    Par défaut
    Bonjour,

    Tout d'abord, à quoi servent tous ces "Number" ? J'ai comme l'impression que tu leur affecte des coordonnées de colonne ? (ne pas oublier les " ")

    Quoi qu'il en soit, tu peux les déclarer avec un array, ce qui rendra le code plus lisible et l'utilisation des variables plus simple Tuto de Boisgontier

    Essaie déjà ça

    Bonne journée

  3. #3
    Membre averti
    Femme Profil pro
    Gestionnaire
    Inscrit en
    Mai 2018
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 47
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2018
    Messages : 10
    Par défaut
    Bonjour Wololol,

    merci pour ta réponse
    Les number correspondent aux numéros de colonnes.
    je vais regarder ton lien

  4. #4
    Membre éprouvé Avatar de Wololol
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2018
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2018
    Messages : 104
    Par défaut
    Re,

    J'ai l'impression qu'après le Number_7, les colonnes se suivent (malgrès quelques disparitées telles que C44 ou CDr).

    Pourquoi ne pas utiliser une boucle dans un Cells(ligne,colonne) ou tu incrémenterai le nombre de colonne ? Ça simplifierai énormément le code.

    De plus tes déclarations telles qu'elles sont, ne pourront pas fonctionner, si tu souhaite continuer sur ton idée, il te faudra alors mettre tes colonnes entre double quotes.

    Bonne continuation

    @halaster08 : nos messages se sont croisés, désolé

  5. #5
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Bonjour,

    De plus, déclarer tes variables ainsi
    Dim Number_1, Number_2, Number_3, Number_4, Number_5, .............. As Integer
    revient à dire que la dernière variable est Integer et les précédentes sont Variant
    Il te faudrait mettre As Integer pour toutes ces variables...

    L'idée de tableau (Array) me semble pertinente, quoique...

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 266
    Par défaut
    Bonjour,

    à quoi te servent tes Number_x et que représentent-elles ?
    Au départ je pensais comme les autres à des lettres de colonnes, mais en lisant ça j'ai de gros doutes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Worksheets(1).Range(("W14:W200")).Value = Number_4 + Number_5
    En plus As Integer ne colle pas avec des chaines...
    qq, RR, etc sont des variables numériques initialisées ailleurs ?
    eric

  7. #7
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 681
    Par défaut
    Bonjour,

    Tu pourrais déjà remplacer toute cette partie là:
    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    Sub Genere_facture(combinaison)
    Dim li_sol, col_sol
    Dim onglet
     
    Dim Number_1, Number_2, Number_3, Number_4, Number_5, Number_6, Number_7, Number_8, Number_9, Number_10, Number_11, Number_12, Number_13, Number_14, Number_15, Number_16, Number_17, Number_18, Number_19, Number_20 As Integer
    Dim Number_21, Number_22, Number_23, Number_24, Number_25, Number_26, Number_27, Number_28, Number_29, Number_30, Number_31, Number_32, Number_33, Number_34, Number_35, Number_36, Number_37, Number_38, Number_39, Number_40 As Integer
    Dim Number_41, Number_42, Number_43, Number_44, Number_45, Number_46, Number_47, Number_48, Number_49, Number_50, Number_51, Number_52, Number_53, Number_54, Number_55, Number_56, Number_57, Number_58, Number_59, Number_60 As Integer
    Dim Number_61, Number_62, Number_63, Number_64, Number_65, Number_66, Number_67, Number_68, Number_69, Number_70, Number_71, Number_72, Number_73, Number_74, Number_75 As Integer
     
        Number_1 = qq
        Number_2 = RR
        Number_3 = SS
        Number_4 = UU
        Number_5 = VV
        Number_6 = XX
        Number_7 = AA
        Number_8 = AB
        Number_9 = AC
        Number_10 = AD
        Number_11 = AE
        Number_12 = AF
        Number_13 = AG
        Number_14 = AH
        Number_15 = AI
        Number_16 = AJ
        Number_17 = AK
        Number_18 = AL
        Number_19 = AM
        Number_20 = AN
        Number_21 = A0
        Number_22 = AP
        Number_23 = AQ
        Number_24 = AR
        Number_25 = C44
        Number_26 = AT
        Number_27 = AU
        Number_28 = AV
        Number_29 = AW
        Number_30 = AX
        Number_31 = AY
        Number_32 = AZ
        Number_33 = BA
        Number_34 = bb
        Number_35 = BC
        Number_36 = BD
        Number_37 = BE
        Number_38 = AF
        Number_39 = BG
        Number_40 = BH
        Number_41 = BI
        Number_42 = BJ
        Number_43 = BK
        Number_44 = BL
        Number_45 = BM
        Number_46 = BN
        Number_47 = BO
        Number_48 = BO
        Number_49 = BQ
        Number_50 = BR
        Number_51 = BS
        Number_52 = BT
        Number_53 = BU
        Number_54 = BV
        Number_55 = BT
        Number_56 = BX
        Number_57 = BY
        Number_58 = BZ
        Number_59 = CA
        Number_60 = CB
        Number_61 = CC
        Number_62 = CDr
        Number_63 = CE
        Number_64 = CF
        Number_65 = CG
        Number_66 = CH
        Number_67 = CI
        Number_68 = CJ
        Number_69 = CK
        Number_70 = CL
        Number_71 = CM
        Number_72 = CN
        Number_73 = CO
        Number_74 = CP
        Number_75 = CK
    par une variable tableau:https://silkyroad.developpez.com/vba/tableaux/
    edit: trop lent, mais moi mon lien c'est un lien dvp donc c'est mieux

    Pour le reste de ton code, il y a surement moyen de faire des boucles pour éviter la répétition mais c'est dur à voir avec juste ton code, pourrais-tu mettre des copies d'écran avant/après pour se rendre bien compte de ce que tu cherche à faire.

  8. #8
    Membre averti
    Femme Profil pro
    Gestionnaire
    Inscrit en
    Mai 2018
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 47
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2018
    Messages : 10
    Par défaut
    merci beaucoup à vous tous,

    malgré les différentes lecture je n'y arrive pas (du surement à mon bas niveau)...
    j'ai joins un fichier test.
    j'ai la feuille3 j'ou ai toute mes données(j'ai en tout 130 lignes), je cherche à remplir la feuille2 tout en me supprimant les lignes à 0.

    j'espère que vous pourrez m'aider....en tout cas merci pour votre patiente
    Fichiers attachés Fichiers attachés

  9. #9
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Remplace tout ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim Number_1, Number_2, Number_3, Number_4, Number_5, Number_6, Number_7, Number_8, Number_9, Number_10, Number_11, Number_12, Number_13, Number_14, Number_15, Number_16, Number_17, Number_18, Number_19, Number_20 As Integer
    Dim Number_21, Number_22, Number_23, Number_24, Number_25, Number_26, Number_27, Number_28, Number_29, Number_30, Number_31, Number_32, Number_33, Number_34, Number_35, Number_36, Number_37, Number_38, Number_39, Number_40 As Integer
    Dim Number_41, Number_42, Number_43, Number_44, Number_45, Number_46, Number_47, Number_48, Number_49, Number_50, Number_51, Number_52, Number_53, Number_54, Number_55, Number_56, Number_57, Number_58, Number_59, Number_60 As Integer
    Dim Number_61, Number_62, Number_63, Number_64, Number_65, Number_66, Number_67, Number_68, Number_69, Number_70, Number_71, Number_72, Number_73, Number_74, Number_75 As Integer
    Par ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim Number(75) As String
    Non seulement c'est plus simple à écrire mais ce sera aussi beaucoup plus simple à utiliser.
    Tu pourras, par exemple, remplacer l'indice par une variable si nécessaire, ce que ne permettait pas de faire ta formulation de déclaration.

    En plus, comme tes désignations de colonnes sont des caractères, le type Integer était erroné.

    Pour utiliser ce vecteur, par exemple, remplace :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        Number_1 = qq
        Number_2 = RR
        Number_3 = SS
        ... etc ...
    Par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        Number(1) = "qq"
        Number(2) = "RR"
        Number(3) = "SS"
        ... etc ...
    N'oublie pas les guillemets sinon VBA traduit qq (par exemple) par la valeur contenue par la variable qq.

Discussions similaires

  1. [XL-2003] Procédure trop grande
    Par direct83 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 11/06/2012, 10h56
  2. procédure trop grande?
    Par cchampion2fr dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 07/10/2008, 17h19
  3. procédure trop grande
    Par Selune6666 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 06/02/2008, 18h21
  4. Diviser une procédure trop grande
    Par tenaka69 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 31/08/2007, 09h45
  5. Procédure trop grande
    Par bobie dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 13/08/2007, 14h30

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