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 :

[E-07]Peut-on améliorer ce code?


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert Avatar de rvtoulon
    Homme Profil pro
    Agent Technique
    Inscrit en
    Mars 2009
    Messages
    1 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Agent Technique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 042
    Par défaut [E-07]Peut-on améliorer ce code?
    slt à tous,
    comme beaucoup je suis novice en vba, autodidacte, et j'ai écris un code qui me permet de copier des données d'une feuille dans une autre puis de les envoyer dans d'autres classeurs. ce code fonctione très bien mais il y a des contraintes et est certainement très lourd.
    le voici:
    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
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    Sub Copierdonnées()
    '
     
    'Je copie les données sur la feuil3
     
     Sheets("Bd").ListObjects("Bd").Range.AutoFilter Field:=3, Criteria1:="PP"
     
        ActiveSheet.ListObjects("Bd").Range.AutoFilter Field:=2, Criteria1:= _
            "AH"
     
    [Bd].Cells.SpecialCells(xlCellTypeVisible).Copy
    Sheets("Feuil3").[B2].PasteSpecial Paste:=xlPasteValues
     
    Sheets("Bd").ListObjects("Bd").Range.AutoFilter Field:=2, Criteria1:= _
            "BJ"
     
    [Bd].Cells.SpecialCells(xlCellTypeVisible).Copy
    Sheets("Feuil3").[B15].PasteSpecial Paste:=xlPasteValues
     
    Sheets("Bd").ListObjects("Bd").Range.AutoFilter Field:=2, Criteria1:= _
            "BL"
     
    [Bd].Cells.SpecialCells(xlCellTypeVisible).Copy
    Sheets("Feuil3").[B28].PasteSpecial Paste:=xlPasteValues
     
    Sheets("Bd").ListObjects("Bd").Range.AutoFilter Field:=2, Criteria1:= _
            "BS"
     
    [Bd].Cells.SpecialCells(xlCellTypeVisible).Copy
    Sheets("Feuil3").[B41].PasteSpecial Paste:=xlPasteValues
     
    Sheets("Bd").ListObjects("Bd").Range.AutoFilter Field:=2, Criteria1:= _
            "GF"
     
    [Bd].Cells.SpecialCells(xlCellTypeVisible).Copy
    Sheets("Feuil3").[B54].PasteSpecial Paste:=xlPasteValues
     
    Sheets("Bd").ListObjects("Bd").Range.AutoFilter Field:=2, Criteria1:= _
            "GV"
     
    [Bd].Cells.SpecialCells(xlCellTypeVisible).Copy
    Sheets("Feuil3").[B67].PasteSpecial Paste:=xlPasteValues
     
    Sheets("Bd").ListObjects("Bd").Range.AutoFilter Field:=2, Criteria1:= _
            "GFa"
     
    [Bd].Cells.SpecialCells(xlCellTypeVisible).Copy
    Sheets("Feuil3").[B80].PasteSpecial Paste:=xlPasteValues
     
    Sheets("Bd").ListObjects("Bd").Range.AutoFilter Field:=2, Criteria1:= _
            "LV"
     
    [Bd].Cells.SpecialCells(xlCellTypeVisible).Copy
    Sheets("Feuil3").[B93].PasteSpecial Paste:=xlPasteValues
     
    Sheets("Bd").ListObjects("Bd").Range.AutoFilter Field:=2, Criteria1:= _
            "MC"
     
    [Bd].Cells.SpecialCells(xlCellTypeVisible).Copy
    Sheets("Feuil3").[B106].PasteSpecial Paste:=xlPasteValues
     
    Sheets("Bd").ListObjects("Bd").Range.AutoFilter Field:=2, Criteria1:= _
            "SK"
     
    [Bd].Cells.SpecialCells(xlCellTypeVisible).Copy
    Sheets("Feuil3").[B119].PasteSpecial Paste:=xlPasteValues
     
    Sheets("Bd").ListObjects("Bd").Range.AutoFilter Field:=2, Criteria1:= _
            "YA"
     
    [Bd].Cells.SpecialCells(xlCellTypeVisible).Copy
    Sheets("Feuil3").[B132].PasteSpecial Paste:=xlPasteValues
     
    Sheets("Bd").ListObjects("Bd").Range.AutoFilter Field:=3
        ActiveSheet.ListObjects("Bd").Range.AutoFilter Field:=2
    [B4].Select
     
     
    'Ouvrir les classeurs destinés à recevoir les données
        'Workbooks (1)= déjà ouvert
        'Ouverture de workbooks (2)
        Workbooks.Open Filename:= _
            "C:\...\fpp.xlsx"
     
        'Ouverture de Workbooks (3)
         Workbooks.Open Filename:= _
            "C:\...\SsPP.xlsx"
     
     'Les ranger en cascade horizontal
     
        Windows.Arrange ArrangeStyle:=xlHorizontal
     
    'je copie l'activité de chaque pionnier dans leur fiche individuelle
    'ainsi que dans le suivi de leur objectif.
     
    Workbooks(1).Worksheets("Feuil3").[E2:K13].Copy
    Workbooks(2).Worksheets("Ha").[B6].PasteSpecial Paste:=xlPasteValues
    Workbooks(1).Worksheets("Feuil3").[G2:G13].Copy
    Workbooks(3).Worksheets("APP").[B3].PasteSpecial Paste:=xlPasteValues
     
    Workbooks(1).Worksheets("Feuil3").[E15:K26].Copy
    Workbooks(2).Worksheets("Je").[B6].PasteSpecial Paste:=xlPasteValues
    Workbooks(1).Worksheets("Feuil3").[G15:G26].Copy
    Workbooks(3).Worksheets("APP").[C3].PasteSpecial Paste:=xlPasteValues
     
    Workbooks(1).Worksheets("Feuil3").[E28:K39].Copy
    Workbooks(2).Worksheets("La").[B6].PasteSpecial Paste:=xlPasteValues
    Workbooks(1).Worksheets("Feuil3").[G28:G39].Copy
    Workbooks(3).Worksheets("APP").[D3].PasteSpecial Paste:=xlPasteValues
     
    Workbooks(1).Worksheets("Feuil3").[E41:K52].Copy
    Workbooks(2).Worksheets("Sy").[B6].PasteSpecial Paste:=xlPasteValues
    Workbooks(1).Worksheets("Feuil3").[G41:G52].Copy
    Workbooks(3).Worksheets("APP").[E3].PasteSpecial Paste:=xlPasteValues
     
    Workbooks(1).Worksheets("Feuil3").[E54:K65].Copy
    Workbooks(2).Worksheets("Fr").[B6].PasteSpecial Paste:=xlPasteValues
    Workbooks(1).Worksheets("Feuil3").[G54:G65].Copy
    Workbooks(3).Worksheets("APP").[F3].PasteSpecial Paste:=xlPasteValues
     
    Workbooks(1).Worksheets("Feuil3").[E67:K78].Copy
    Workbooks(2).Worksheets("Vi").[B6].PasteSpecial Paste:=xlPasteValues
    Workbooks(1).Worksheets("Feuil3").[G67:G78].Copy
    Workbooks(3).Worksheets("APP").[G3].PasteSpecial Paste:=xlPasteValues
     
    Workbooks(1).Worksheets("Feuil3").[E80:K91].Copy
    Workbooks(2).Worksheets("Fa").[B6].PasteSpecial Paste:=xlPasteValues
    Workbooks(1).Worksheets("Feuil3").[G80:G91].Copy
    Workbooks(3).Worksheets("APP").[H3].PasteSpecial Paste:=xlPasteValues
     
    Workbooks(1).Worksheets("Feuil3").[E93:K104].Copy
    Workbooks(2).Worksheets("Vir").[B6].PasteSpecial Paste:=xlPasteValues
    Workbooks(1).Worksheets("Feuil3").[G93:G104].Copy
    Workbooks(3).Worksheets("APP").[I3].PasteSpecial Paste:=xlPasteValues
     
     
    Workbooks(1).Worksheets("Feuil3").[E106:K117].Copy 
    Workbooks(2).Worksheets("Ca").[B6].PasteSpecial Paste:=xlPasteValues 
    Workbooks(1).Worksheets("Feuil3").[G106:G117].Copy 
    Workbooks(3).Worksheets("APP").[J3].PasteSpecial Paste:=xlPasteValues 
     
    Workbooks(1).Worksheets("Feuil3").[E119:K130].Copy
    Workbooks(2).Worksheets("Ka").[B6].PasteSpecial Paste:=xlPasteValues
    Workbooks(1).Worksheets("Feuil3").[G119:G130].Copy
    Workbooks(3).Worksheets("APP").[K3].PasteSpecial Paste:=xlPasteValues
     
    Workbooks(1).Worksheets("Feuil3").[E132:K143].Copy
    Workbooks(2).Worksheets("Ab").[B6].PasteSpecial Paste:=xlPasteValues
    Workbooks(1).Worksheets("Feuil3").[G132:G143].Copy
    Workbooks(3).Worksheets("APP").[L3].PasteSpecial Paste:=xlPasteValues
     
    [D20].Select
     
     
    Workbooks(1).Worksheets("Feuil3").Activate
    [A:L].Select
        Application.CutCopyMode = False
        Selection.ClearContents
        [A1].Select
        Sheets("Bd").Select
     
     
    End Sub
    je travaille sur le moyen de créer une boucle à partir de la feuille source ,ici Bd, afin de coller directement les données dans les 2 autres classeurs.
    j'ai une piste que mon donné casefayere et qwzaerty j'ai presque fini de l'écrire.
    Que puis-je faire?

  2. #2
    Membre Expert Avatar de rvtoulon
    Homme Profil pro
    Agent Technique
    Inscrit en
    Mars 2009
    Messages
    1 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Agent Technique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 042
    Par défaut code améliorer
    re j'ai pu améliorer mon code et il fonctionne très bien. Mais comme je veux pas mourir bête j'aimerais avoir votre avis sur ce qu'il est possible d'améliorer. Le voici:
    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
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    Sub PP()
     
     
    Application.ScreenUpdating = False
    'Ouvrir les classeurs destinés à recevoir les données
        'Workbooks (1)= déjà ouvert
        'Ouverture de workbooks (2)
        Workbooks.Open Filename:= _
            "C:\...\fpp.xlsx"
     
        'Ouverture de Workbooks (3)
         Workbooks.Open Filename:= _
            "C:\...\SsPP.xlsx"
     
     'Les ranger en cascade horizontal
     
       Windows.Arrange ArrangeStyle:=xlHorizontal
     
     
     
    Dim x As Integer, y As Integer, z As Integer
    Dim Bd As Worksheet
     Set Bd = Workbooks(1).Worksheets("Bd")
     
    z = 6
    x = 3
    With Bd
    For y = 4 To Bd.Cells(Rows.Count, "C").End(xlUp).Row
    If .Range("C" & y) = "AH" Then
        Workbooks(2).Sheets("HA").Range("B" & z) = .Range("E" & y)
        Workbooks(2).Sheets("HA").Range("C" & z) = .Range("F" & y)
        Workbooks(2).Sheets("HA").Range("D" & z) = .Range("G" & y)
        Workbooks(2).Sheets("HA").Range("E" & z) = .Range("H" & y)
        Workbooks(2).Sheets("HA").Range("F" & z) = .Range("I" & y)
        Workbooks(2).Sheets("HA").Range("G" & z) = .Range("J" & y)
        Workbooks(2).Sheets("HA").Range("H" & z) = .Range("K" & y)
        Workbooks(3).Sheets("APP").Range("B" & x) = .Range("G" & y)
     
    ElseIf .Range("C" & y) = "BJ" Then
        Workbooks(2).Sheets("JE").Range("B" & z) = .Range("E" & y)
        Workbooks(2).Sheets("JE").Range("C" & z) = .Range("F" & y)
        Workbooks(2).Sheets("JE").Range("D" & z) = .Range("G" & y)
        Workbooks(2).Sheets("JE").Range("E" & z) = .Range("H" & y)
        Workbooks(2).Sheets("JE").Range("F" & z) = .Range("I" & y)
        Workbooks(2).Sheets("JE").Range("G" & z) = .Range("J" & y)
        Workbooks(2).Sheets("JE").Range("H" & z) = .Range("K" & y)
        Workbooks(3).Sheets("APP").Range("C" & x) = .Range("G" & y)
     
    ElseIf .Range("C" & y) = "BL" Then
        Workbooks(2).Sheets("LA").Range("B" & z) = .Range("E" & y)
        Workbooks(2).Sheets("LA").Range("C" & z) = .Range("F" & y)
        Workbooks(2).Sheets("LA").Range("D" & z) = .Range("G" & y)
        Workbooks(2).Sheets("LA").Range("E" & z) = .Range("H" & y)
        Workbooks(2).Sheets("LA").Range("F" & z) = .Range("I" & y)
        Workbooks(2).Sheets("LA").Range("G" & z) = .Range("J" & y)
        Workbooks(2).Sheets("LA").Range("H" & z) = .Range("K" & y)
        Workbooks(3).Sheets("APP").Range("D" & x) = .Range("G" & y)
     
    ElseIf .Range("C" & y) = "BS" Then
        Workbooks(2).Sheets("SY").Range("B" & z) = .Range("E" & y)
        Workbooks(2).Sheets("SY").Range("C" & z) = .Range("F" & y)
        Workbooks(2).Sheets("SY").Range("D" & z) = .Range("G" & y)
        Workbooks(2).Sheets("SY").Range("E" & z) = .Range("H" & y)
        Workbooks(2).Sheets("SY").Range("F" & z) = .Range("I" & y)
        Workbooks(2).Sheets("SY").Range("G" & z) = .Range("J" & y)
        Workbooks(2).Sheets("SY").Range("H" & z) = .Range("K" & y)
        Workbooks(3).Sheets("APP").Range("E" & x) = .Range("G" & y)
     
    ElseIf .Range("C" & y) = "GFr" Then
        Workbooks(2).Sheets("FR").Range("B" & z) = .Range("E" & y)
        Workbooks(2).Sheets("FR").Range("C" & z) = .Range("F" & y)
        Workbooks(2).Sheets("FR").Range("D" & z) = .Range("G" & y)
        Workbooks(2).Sheets("FR").Range("E" & z) = .Range("H" & y)
        Workbooks(2).Sheets("FR").Range("F" & z) = .Range("I" & y)
        Workbooks(2).Sheets("FR").Range("G" & z) = .Range("J" & y)
        Workbooks(2).Sheets("FR").Range("H" & z) = .Range("K" & y)
        Workbooks(3).Sheets("APP").Range("F" & x) = .Range("G" & y)
     
    ElseIf .Range("C" & y) = "GV" Then
        Workbooks(2).Sheets("VI").Range("B" & z) = .Range("E" & y)
        Workbooks(2).Sheets("VI").Range("C" & z) = .Range("F" & y)
        Workbooks(2).Sheets("VI").Range("D" & z) = .Range("G" & y)
        Workbooks(2).Sheets("VI").Range("E" & z) = .Range("H" & y)
        Workbooks(2).Sheets("VI").Range("F" & z) = .Range("I" & y)
        Workbooks(2).Sheets("VI").Range("G" & z) = .Range("J" & y)
        Workbooks(2).Sheets("VI").Range("H" & z) = .Range("K" & y)
        Workbooks(3).Sheets("APP").Range("G" & x) = .Range("G" & y)
     
    ElseIf .Range("C" & y) = "GFa" Then
        Workbooks(2).Sheets("FA").Range("B" & z) = .Range("E" & y)
        Workbooks(2).Sheets("FA").Range("C" & z) = .Range("F" & y)
        Workbooks(2).Sheets("FA").Range("D" & z) = .Range("G" & y)
        Workbooks(2).Sheets("FA").Range("E" & z) = .Range("H" & y)
        Workbooks(2).Sheets("FA").Range("F" & z) = .Range("I" & y)
        Workbooks(2).Sheets("FA").Range("G" & z) = .Range("J" & y)
        Workbooks(2).Sheets("FA").Range("H" & z) = .Range("K" & y)
        Workbooks(3).Sheets("APP").Range("H" & x) = .Range("G" & y)
     
    ElseIf .Range("C" & y) = "LV" Then
        Workbooks(2).Sheets("VIR").Range("B" & z) = .Range("E" & y)
        Workbooks(2).Sheets("VIR").Range("C" & z) = .Range("F" & y)
        Workbooks(2).Sheets("VIR").Range("D" & z) = .Range("G" & y)
        Workbooks(2).Sheets("VIR").Range("E" & z) = .Range("H" & y)
        Workbooks(2).Sheets("VIR").Range("F" & z) = .Range("I" & y)
        Workbooks(2).Sheets("VIR").Range("G" & z) = .Range("J" & y)
        Workbooks(2).Sheets("VIR").Range("H" & z) = .Range("K" & y)
        Workbooks(3).Sheets("APP").Range("I" & x) = .Range("G" & y)
     
    ElseIf .Range("C" & y) = "MC" Then
        Workbooks(2).Sheets("CA").Range("B" & z) = .Range("E" & y)
        Workbooks(2).Sheets("CA").Range("C" & z) = .Range("F" & y)
        Workbooks(2).Sheets("CA").Range("D" & z) = .Range("G" & y)
        Workbooks(2).Sheets("CA").Range("E" & z) = .Range("H" & y)
        Workbooks(2).Sheets("CA").Range("F" & z) = .Range("I" & y)
        Workbooks(2).Sheets("CA").Range("G" & z) = .Range("J" & y)
        Workbooks(2).Sheets("CA").Range("H" & z) = .Range("K" & y)
        Workbooks(3).Sheets("APP").Range("J" & x) = .Range("G" & y)
     
    ElseIf .Range("C" & y) = "SK" Then
        Workbooks(2).Sheets("KA").Range("B" & z) = .Range("E" & y)
        Workbooks(2).Sheets("KA").Range("C" & z) = .Range("F" & y)
        Workbooks(2).Sheets("KA").Range("D" & z) = .Range("G" & y)
        Workbooks(2).Sheets("KA").Range("E" & z) = .Range("H" & y)
        Workbooks(2).Sheets("KA").Range("F" & z) = .Range("I" & y)
        Workbooks(2).Sheets("KA").Range("G" & z) = .Range("J" & y)
        Workbooks(2).Sheets("KA").Range("H" & z) = .Range("K" & y)
        Workbooks(3).Sheets("APP").Range("K" & x) = .Range("G" & y)
     
    ElseIf .Range("C" & y) = "YA" Then
        Workbooks(2).Sheets("AB").Range("B" & z) = .Range("E" & y)
        Workbooks(2).Sheets("AB").Range("C" & z) = .Range("F" & y)
        Workbooks(2).Sheets("AB").Range("D" & z) = .Range("G" & y)
        Workbooks(2).Sheets("AB").Range("E" & z) = .Range("H" & y)
        Workbooks(2).Sheets("AB").Range("F" & z) = .Range("I" & y)
        Workbooks(2).Sheets("AB").Range("G" & z) = .Range("J" & y)
        Workbooks(2).Sheets("AB").Range("H" & z) = .Range("K" & y)
        Workbooks(3).Sheets("APP").Range("L" & x) = .Range("G" & y)
     
    z = z + 1
    x = x + 1
    End If
    Next y
    End With
     
     
    Application.ScreenUpdating = True
    End Sub
    un grand merci à casefayere et qwzaerty qui m'ont donné la piste pour l'écrire.

  3. #3
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonjour,
    rien que pour cette partie, ajouter une boucle avec une autre variable :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Workbooks(2).Sheets("HA").Range("B" & z) = .Range("E" & y)
        Workbooks(2).Sheets("HA").Range("C" & z) = .Range("F" & y)
        Workbooks(2).Sheets("HA").Range("D" & z) = .Range("G" & y)
        Workbooks(2).Sheets("HA").Range("E" & z) = .Range("H" & y)
        Workbooks(2).Sheets("HA").Range("F" & z) = .Range("I" & y)
        Workbooks(2).Sheets("HA").Range("G" & z) = .Range("J" & y)
        Workbooks(2).Sheets("HA").Range("H" & z) = .Range("K" & y)
    PEUT DEVENIR
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for ex = 2 to 8
      Workbooks(2).Sheets("HA").cells(z, ex) = .cells(y,ex+3)
       next ex
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  4. #4
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    j'ai oublié de dire que la solution que je te propose est à adapter au reste du code, passes par cells plutot que range

    a+
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  5. #5
    Membre Expert Avatar de rvtoulon
    Homme Profil pro
    Agent Technique
    Inscrit en
    Mars 2009
    Messages
    1 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Agent Technique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 042
    Par défaut
    slt casefayere,
    donc en fait cette boucle évite de répéter x fois
    workbooks (2).Etc........

    Il faut que je la repète pour chaque changement de critère, si j'ai bien compris?
    et conserve :
    workbooks (3)

  6. #6
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    si ce sont des classeurs differents, laisse
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    for ex = 2 to 8
      Workbooks(2).Sheets("HA").cells(z, ex) = .cells(y,ex+3)
      Workbooks(3).Sheets("APP").Range("B" & x) = .Range("G" & y)
     
    ElseIf .Range("C" & y) = "BJ" Then
        Workbooks(2).Sheets("JE").cells(z,ex) = .cells(y,ex + 3)
       Workbooks(3).Sheets("APP").Range("C" & x) = .Range("G" & y)
    et ainsi de suite
    next ex
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 10
    Dernier message: 13/09/2011, 10h08
  2. Est ce que ce code peut être amélioré ?
    Par _s4z_ dans le forum Langage
    Réponses: 3
    Dernier message: 04/09/2010, 12h51
  3. [Toutes versions] Peut on améliorer ce code
    Par johannj dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 03/04/2009, 14h09
  4. [Optimisation]Peut-on améliorer ce code ?
    Par progfou dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 09/08/2007, 15h43
  5. [EclipseUml] Peut-on générer le code ?
    Par Dof dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 05/06/2003, 15h21

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