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 :

Comment transférer des données d'un tableau excel à un autre ?


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2017
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Septembre 2017
    Messages : 36
    Points : 12
    Points
    12
    Par défaut Comment transférer des données d'un tableau excel à un autre ?
    Bonjour,

    Si j'en viens a poser une question directement c'est que j'ai vraiment épuiser toutes mes ressources. Ca fait maintenant une semaine que je suis penché sur mon problème et que je n'y arrive pas. J'ai cherché des aides partout mais rien, rien ne m'as vraiment aider dans mon problème.

    J'explique mon problème.


    J'ai un classeur excel où je vais lancer ma macro (on va l'appeler classeur macro). Ma macro a pour but d'aller chercher des informations qui se trouvent dans un autre classeur excel (on va l'appeler classeur fiche de synthèse), et de transférer ces donner dans un autre classeur excel (que l'on appelle classeur import).
    Mais il y a plusieurs subtilités:

    1- la macro doit être capable de lire les chemins d'accès du classeur fiche de synthèse et du classeur import même si ces derniers changent de nom ou d'emplacement dans l'ordi. Cette saisi des chemins est faite manuellement par l'utilisateur. CA C'EST OK (je n'ai pas mis tout juste le début comment j'ai fait après j'ouvre avec Workbook.Open)
    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
    Sub TEST1()
    '
    ' TEST1 Macro
    '
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
     
    'Décalaration des variables
     
    Dim Wk1 As Workbook 'doc où il y a la macro'
    Dim Wk2 As Workbook 'doc fiche de synthèse'
    Dim Wk3 As Workbook 'doc qui devra être importer sur TWIMM'
    Set Wk1 = ThisWorkbook
        fiche_de_synthèse = Wk1.Sheets(1).Range("E3")
        fichier_à_importer = Wk1.Sheets(1).Range("E6")

    2- Donc l'ouverture des différents documents externe se fait bien, mon vrai problème est là. Ma macro doit maitenant être capable de:
    A - lire (dans le classeur fiche de synthèse) les données des cellules dans des colonnes particulières. C'est-à-dire, on doit dire à la macro "je veux que tu me prennent toutes les valeurs dans la colonne qui s’appelle "CODE_SITE", "NOM_S".. (il y a bcp plus de colonnes a renseigner mais on va s’arrêter là, si on y arrive pour une on y arrive pour toutes) et que tu me les transfères dans mon classeur import où il y a les colonnes "CODE_SITE"..."
    J'ai fait exprès de donner les mêmes noms de colonnes dans les classeurs import et fiche de synthèse (je pensais que ca serait plus facile).
    En gros,
    données colonne "CODE_SITE" (classeur fiche de synthèse) ------> colonne "CODE_SITE" (classeur import)

    B - autre subtilité, s'il y a un changement (ajout ou suppression) d'une colonne je ne veux pas que ça affecte ma macro. Pour ça je dois utiliser la fonction suivant il me semble:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set code_du_site = Cells.Find(what:="CODE_SITE") 'sélection de la cellule en fonction du nom de la colonne'
    C - Je ne veux pas utiliser le principe de copier/coller qui est trop lourde et fait mettre du temps à la macro à se faire. J'avais fait avec cette méthode au début et j'y étais arrivé, ça marchait. Je vous mets en copie mon code, si vous avez des solutions pour la rendre plus rapide je suis preneur !
    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
    Sub TEST1()
    '
    ' TEST1 Macro
    '
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
     
    'Décalaration des variables
     
    Dim Wk1 As Workbook 'doc où il y a la macro'
    Dim Wk2 As Workbook 'doc fiche de synthèse'
    Dim Wk3 As Workbook 'doc qui devra être importer sur TWIMM'
    Dim fiche_de_synthèse As String
    Dim fichier_à_importer As String
    Dim Cellule As Range
     
     
    Set Wk1 = ThisWorkbook
        fiche_de_synthèse = Wk1.Sheets(1).Range("E3")
        fichier_à_importer = Wk1.Sheets(1).Range("E6")
     
    Set Wk2 = Workbooks.Open(fiche_de_synthèse)
        With Wk2
            Range("H2").Copy
        End With
    Set Wk3 = Workbooks.Open(fichier_à_importer)
        With Wk3
            Sheets("CONTRATS P2").Select 'sélection de la feuille souhaitée'
                    Set Cellule = Cells.Find(what:="CODE_SITE") 'sélection de la cellule en fonction du nom de la colonne'
                        If Not Cellule Is Nothing Then
                        Cells(1, Cellule.Column).Resize(Cells(Rows.Count, Cellule.Column).End(xlUp).Row).Select
                    Else
                        MsgBox "Pas trouvé le nom de la cellule recherchée (1)"
                    Exit Sub
                        End If
            Cells(2, Cellule.Column).Select 'sélection de la cellule en fonction du nom de la colonne'
            ActiveSheet.Paste 'on colle ici'
        End With
     
    Wk2.Close
        With Wk3
            Wk3.Save
            Wk3.Close
        End With
     
    Application.ScreenUpdating = True
     
     
    End Sub

    Voila la macro que de vois créer rapidement.. Je résume pour que vous compreniez bien.
    - Ma macro doit lire des chemins d'accès à un classeur source et un classeur import, où les chemins et noms des classeurs pourront changer.
    - Le but de ma macro et de transférer des données d'un tableau d'un classeur externe à un autre tableau d'un autre classeur externe
    - S'il y a des ajouts de colonnes ou lignes cela de doit pas affecter ma macro (c'est pourquoi j'avais utilisé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Cellule = Cells.Find(what:="CODE_SITE")
    )
    - je ne veux pas passer par le principe copier/coller qui est trop lourd (je suis quand même preneur de solution)


    J'ai passé du temps a bien expliquer j'espère que j'ai été assez explicite car c'est assez complexe à expliquer. Si vous pouvez m'aider je vous serais grandement reconnaissant. Si vous avez des solutions juste pour certaines parties du programme (lire données d'une colonne spécifique, écrire ces données dans un autre classeur..) ça m'aiderai bcp aussi je pense.
    Je suis un débutant en VBA aussi j'ai des acquis mais j'ai encore bcp a apprendre sur ce langage.

    Je mets mes classeurs excel en pièce jointe pour que vous voyez a quoi ca ressemble (le classeur "essai 2" correspond au classeur où il y a la macro)


    Merci
    Fichiers attachés Fichiers attachés

  2. #2
    Membre actif Avatar de lucasgaetan
    Homme Profil pro
    dessinateur BE
    Inscrit en
    Août 2011
    Messages
    171
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : dessinateur BE
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2011
    Messages : 171
    Points : 276
    Points
    276
    Par défaut
    bonjour,

    pourquoi ne fais tu pas un truc sur ce principe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Wk3.Sheets(1).cells(1,1).value =  Wk2.Sheets(1).cells(1,1).value
    'pour l'exemple Wk3"A1"=Wk2"A1"
    avec la boucle qui va bien
    ce qui ne t’empêche pas de stocker ta variable au préalable
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Set Cellule = ce que tu veux
    Wk3.Sheets(1).cells(1,1).value = Cellule.value
    et meme sur les deux classeur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Set Cellule2 = Wk2 ce que tu veux
    Set Cellule3 = Wk3 ce que tu veux
    Cellule3 .value = Cellule2.value
    c'est un principe à développer à ta guise.

    pour les boucle voir ici : http://silkyroad.developpez.com/vba/boucles/

    bon courage.

  3. #3
    Membre extrêmement actif Avatar de mjpmjp
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2012
    Messages
    1 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Alpes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2012
    Messages : 1 133
    Points : 1 441
    Points
    1 441
    Par défaut
    bonjour,
    le problème
    Cellule = Cells.Find(what:="CODE_SITE")
    la réponse
    données colonne "CODE_SITE" (classeur fiche de synthèse) ------> colonne "CODE_SITE" (classeur import)
    dans ton code
    Set code_du_site = Cells.Find(what:="CODE_SITE") 'sélection de la cellule en fonction du nom de la colonne'
    il manque la provenance des cellules
    Set code_du_site ......indique dans le nom la provenance (source/cible)...set code_source...
    = Cells.Find........indique la provenance (classeur/onglet)....ClasseurName.OngletName.Cells.Find...

    @+JP
    Caractéristiques (WEB) phpMyAdmin 4-74 , PHP 5-631 , Apache 2-427 , MySQL 5-719
    Présentation NAS DS-3615xs + 20Go , DSM 6.1.6-15266 Up1 , 12 * WD 4To WD4000F9YZ (10 raid 6+ )+(2 raid 1+) , LinkSys comutateur-switch lgs528p-eu , Onduleur UPS 720W Power Boxx Lcd (4*UPS + 4*MOD)
    Mes contributions (EXCEL) Form GRAPHIQUE: Gestion des boutons , Liste Onglet dynamique...GESTION de FILM

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2017
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Septembre 2017
    Messages : 36
    Points : 12
    Points
    12
    Par défaut
    Bonjour merci a vous deux, j'y suis arrivé mais le programme est bcp trop lourd... je ne peux pas copier coller donc faut que je passe par la méthode suivante:
    1) délimiter la plage de donnée en fonction du nombre de lignes renseigné (tableau dynamique) (ligne 36 à 46)

    2) lecture du tableau dynamique définie précédemment (ligne 64 à 73)

    3) Regroupement des données du tableau dans un tableau virtuel dans la macro (ligne 78 à 82, je redimensionne le tableau dynamique en un tableau virtuel où contrairement au premier tableau je définie ma vraie plage de données qui commence de la ligne 7 à la dernière ligne renseignée, ici 9)

    4) Récupération de ces données (ligne 85 à 92)

    5) Copie dans le fichier import (Wk3) (ligne 98 à 104)

    J'ai commencé ce code mais j'ai des problème je ne vois pas ce qu'il ne va pas... je pense que j'arrive pas a délimiter la plage de données (je ne veux pas prendre les lignes de la ligne A a la derniere ligne, mais de la ligne 7 a la dernière ligne; pour les colonnes je veux juste prendre les colonnes que j'ai renseignées)

    Voici le 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
    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
    Sub TEST1()
    '
    ' TEST1 Macro
    '
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
     
    'Décalaration des variables
     
    Dim Wk1 As Workbook 'doc où il y a la macro'
    Dim Wk2 As Workbook 'doc fiche de synthèse'
    Dim Wk3 As Workbook 'doc qui devra être importer sur TWIMM'
    Dim fiche_de_synthèse As String
    Dim fichier_à_importer As String
      Dim dernligneWk2 As String 'dernière ligne de la colonne code_site, attention si ajout de colonne avant il faut modifier le n° de la colonne ici'
      Dim derncolWk2 As String 'dernière colonne du tableau fiche de synthèse'
      Dim tableauligne() As Integer
      Dim tableaucolonne() As Integer
            Dim i As Integer 'i représente la variable du nombre d'élément en Y'
            Dim j As Integer 'j représente la variable du nombre d'élément en X'
        Dim nom_col(3) As String 'dans le classeur fiche de synthèse'
        Dim nom_colonne(3) As String 'dans le classeur IMPORT TWIMM'
        Dim place_col(3) As Integer
        Dim plage_donnees_Wk2 As Integer
                    Dim code_du_site() As String 'c'est les noms dans le tableau virtuel que l'on a créé'
                Dim nom_du_site() As String
                Dim lot_sur_le_site() As String
     
     
     
    'ici on indique où lire les chemins dans la feuille excel où il y a la macro'
    Set Wk1 = ThisWorkbook
        fiche_de_synthèse = Wk1.Sheets(1).Range("E3")
        fichier_à_importer = Wk1.Sheets(1).Range("E6")
     
    Set Wk2 = Workbooks.Open(fiche_de_synthèse)
        With Wk2
    'définition des bornes du tableau source'
    dernligneWk2 = Sheets("Fiche de synthèse").Range("B" & Rows.Count).End(xlUp).Row 'prend la valeur de la dernière ligne de la colonne C (CODE_SITE)'
    derncolWk2 = UBound(nom_col, 1) 'on ne veux pas prendre toutes les colonnes mais seulement les colonnes qui nous intéressent et que l'on définit plus bas dans les vecteurs'
     
    'on a un tableau dynamique, donc on doit redéfinir les dimensions du tableau qui sont dernligneWk2 et derncolWk2'
        ReDim tableauligne(dernligneWk2)
        ReDim tableaucolonne(derncolWk2)
     
        End With
     
     
     
    'création des vecteurs noms colonnes, attention les noms ne doivent pas changer'
    'dans le classeur FICHE DE SYNTHESE'
    nom_col(1) = "CODE_SITE"
    nom_col(2) = "NOM_S"
    nom_col(3) = "LOTS"
     
    'création des vecteurs noms colonnes, attention les noms ne doivent pas changer'
    'dans le classeur IMPORT TWIMM'
    nom_colonne(1) = "CODE_SITE"
    nom_colonne(2) = "NOM"
    nom_colonne(3) = "LOTS"
     
     
     
    'on commence la lecture dans le classeur fiche de synthèse (Wk2), en  localisant les info à traiter par lecture du nom des colonnes'
    For j = 1 To UBound(nom_col, 1)
        For i = 7 To dernligneWk2 'j représente l'axe X, i l'axe Y'
            If UCase(nom_col(j)) Like "*" & UCase(Wk2.Sheets("fiche de synthèse").Cells(7, i)) & "*" And UCase(Wk2.Sheets("fiche de synthèse").Cells(7, i)) <> "" Then
                place_col(j) = i
                Exit For
            Else
            End If
        Next
    Next
     
     
    Set Wk3 = Workbooks.Open(fichier_à_importer)
     
    'code_du_site et les autres doivent être dimensionné ou alors peut etre pas commencer la boucle d'aprés à 0. je pense que par definition cest à 1 en tout cas la il ne capte pas. pas sur que j'ai donné la bonne taille là!'
    'notre "vraie 1ère ligne" est la numéro 7 et pas 1, cela pour toutes les colonnes concernées'
            ReDim code_du_site(UBound(tableauligne) - 7)
            ReDim nom_du_site(UBound(tableauligne) - 7)
            ReDim lot_sur_le_site(UBound(tableauligne) - 7)
     
     
    'on récupère les données du classeur fiche de synthèse'
        For plage_donnees_Wk2 = 7 To UBound(tableauligne) 'on se déplace sur les lignes'
           For i = 1 To UBound(tableauligne) - 7 ' pourquoi faire ce -7?'
     
    'on créer des variables temporaires dans la macro'
                    code_du_site(i) = Wk2.Sheets("fiche de synthèse").Cells(plage_donnees_Wk2, place_col(1))
                    nom_du_site(i) = Wk2.Sheets("fiche de synthèse").Cells(plage_donnees_Wk2, place_col(2))
                    lot_sur_le_site(i) = Wk2.Sheets("fiche de synthèse").Cells(plage_donnees_Wk2, place_col(3))
     
     
    'on colle les valeurs qui sont stockées dans les variables temporaires dans le fichier à importer sur TWIMM'
    'pour mieux s'y retrouver et plus de facilité, on colle page par page'
     
            With Wk3.Sheets("SITES")
          derniere_ligne_libre_Wk3 = Range("nom_colonne()" & Rows.Count).End(xlUp).Row
     
            Cells(derniere_ligne_libre_Wk3 + 1, nom_colonne(1)).Value = code_du_site(i)  'CODE_SITE'
            Cells(derniere_ligne_libre_Wk3 + 1, nom_colonne(2)).Value = nom_du_site(i) 'NOM_S qui correspond au nom du site attribué'
            Cells(derniere_ligne_libre_Wk3 + 1, nom_colonne(3)).Value = lot_sur_le_site(i) 'LOTS qui correspond au lot sur le site'
                i = i + 1
            End With
        Next
            Next
     
     
     
     
    Wk2.Close
    Wk3.Save
    Wk3.Close
     
     
    Application.ScreenUpdating = True
     
     
    End Sub
    il me dit "erreur 1004 erreur définie par l'application ou par l'objet" à la ligne 90 mais je pense qu'il y a une erreur avant

    le fiche de synthèse -> Wk2
    import -> Wk3
    classeur ou il y la macro -> Wk1

    Merci

    Pièce jointe 318570Fiche de synthèse - moi_V03.xlsx

  5. #5
    Expert éminent sénior 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
    Points : 32 866
    Points
    32 866
    Par défaut
    Quand ça plante, regarde ce que contient place_col(1).
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  6. #6
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2017
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Septembre 2017
    Messages : 36
    Points : 12
    Points
    12
    Par défaut
    c'est bon j'ai réussi mon programme !
    mais j'ai encore un petit probleme..... J'ai des cellules qui ne se copie pas correctement est d'autres très bien je ne comprends pas pq.

    Par exemple:
    - place_colonne_Wk3(2) à la ligne 366 renvoie 4 alors qu'il devrait renvoyer 7 car la colonne "NOM" dans Wk3 est la n°7
    et ça c'est pareil pour pas mal de colonne alors que certaine marche très bien comme le colonne 44

    Je pense que ca vient de mes boules aux lignes 200... ou sinon c'est un probleme par rapport au nom des colonnes que j'ai défini aux lignes 145 à 188 où il y a des noms identiques qui reviennent.




    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
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    288
    289
    290
    291
    292
    293
    294
    295
    296
    297
    298
    299
    300
    301
    302
    303
    304
    305
    306
    307
    308
    309
    310
    311
    312
    313
    314
    315
    316
    317
    318
    319
    320
    321
    322
    323
    324
    325
    326
    327
    328
    329
    330
    331
    332
    333
    334
    335
    336
    337
    338
    339
    340
    341
    342
    343
    344
    345
    346
    347
    348
    349
    350
    351
    352
    353
    354
    355
    356
    357
    358
    359
    360
    361
    362
    363
    364
    365
    366
    367
    368
    369
    370
    371
    372
    373
    374
    375
    376
    377
    378
    379
    380
    381
    382
    383
    384
    385
    386
    387
    388
    389
    390
    391
    392
    393
    394
    395
    396
    397
    398
    399
    400
    401
    402
    403
    404
    405
    406
    407
    408
    409
    410
    411
    412
    413
    414
    415
    416
    417
    418
    419
    420
    421
    422
    423
    424
    425
    Sub TEST1()
    '
    ' TEST1 Macro
    '
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
     
    'Décalaration des variables
     
    Dim Wk1 As Workbook 'doc où il y a la macro'
    Dim Wk2 As Workbook 'doc fiche de synthèse'
    Dim Wk3 As Workbook 'doc qui devra être importer sur TWIMM'
    Dim fiche_de_synthèse As String
    Dim fichier_à_importer As String
      Dim dernligneWk2 As Integer 'dernière ligne de la colonne code_site, attention si ajout de colonne avant il faut modifier le n° de la colonne ici'
      Dim derncolWk2 As Integer 'dernière colonne du tableau fiche de synthèse'
      Dim derncolWk3 As Integer
      Dim derncolWk3_2 As Integer
      Dim derncolWk3_3 As Integer
      Dim derncolWk3_4 As Integer
      Dim derncolWk3_5 As Integer
      Dim derncolWk3_6 As Integer
            Dim i As Integer 'i représente la variable du nombre d'élément en Y'
            Dim j As Integer 'j représente la variable du nombre d'élément en X'
        Dim nom_col(44) As String 'dans le classeur fiche de synthèse'
        Dim nom_colonne(44) As String 'dans le classeur IMPORT TWIMM'
        Dim place_col(44) As Integer 'pour le fichier source Wk2'
        Dim place_colonne_Wk3(44) As Integer 'pour le fichier Wk3'
        Dim plage_donnees_Wk2 As Integer
                Dim code_du_site() As String 'c'est les noms dans le tableau virtuel que l'on a créé'
                Dim nom_du_site() As String
                Dim lot_sur_le_site() As String
                Dim designation() As String
                Dim commentaire_sur_le_site() As String
                Dim adresse_1_site() As String
                Dim adresse_2_site() As String
                Dim code_postal_site() As String
                Dim ville_du_site() As String
                Dim code_titre() As String
                Dim observation_sur_le_site() As String
                Dim code_client() As String
                Dim nom_client() As String
                Dim groupe_du_client() As String
                Dim adresse_1_client() As String
                Dim adresse_2_client() As String
                Dim code_postal_client() As String
                Dim ville_client() As String
                Dim dirigeant() As String
                Dim tel_client() As String
                Dim mail_client() As String
                Dim fax_client() As String
                Dim code_du_contact() As String
                Dim nom_du_contact() As String
                Dim type_contact() As String
                Dim tel1_du_contact() As String
                Dim tel2_du_contact() As String
                Dim mail_du_contact() As String
                Dim notifications_par_rapport_au_contact() As String
                Dim code_secteur() As String
                Dim code_tech() As String
                Dim numero_contrat() As String
                Dim intitule_du_contrat() As String
                Dim date_debut_contrat() As String
                Dim reconduction_du_contrat() As String
                Dim base_contrat() As String
                Dim BI_facturable() As String
                Dim observations_sur_contrat() As String
                Dim prevision_temps() As String
                Dim type_facturation() As String
                Dim base_nb() As String
                Dim base_DJU() As String
                Dim code_station_meteo() As String
                Dim surface() As String
     
     
     
    'ici on indique où lire les chemins dans la feuille excel où il y a la macro'
    Set Wk1 = ThisWorkbook
        fiche_de_synthèse = Wk1.Sheets(1).Range("E3")
        fichier_à_importer = Wk1.Sheets(1).Range("E6")
     
    Set Wk2 = Workbooks.Open(fiche_de_synthèse)
    Set Wk3 = Workbooks.Open(fichier_à_importer)
     
    'définition des bornes du tableau source'
    dernligneWk2 = Wk2.Sheets("Fiche de synthèse").Range("B" & Rows.Count).End(xlUp).Row 'prend la valeur de la dernière ligne de la colonne C (CODE_SITE)'
    derncolWk2 = Wk2.Sheets("Fiche de synthèse").Cells(6, Cells.Columns.Count).End(xlToLeft).Column 'prend la valeur de la derniere colonne'
    derncolWk3 = Wk3.Sheets("SITES").Cells(1, Cells.Columns.Count).End(xlToLeft).Column 'prend la valeur de la derniere colonne'
    derncolWk3_2 = Wk3.Sheets("BâTIMENTS").Cells(1, Cells.Columns.Count).End(xlToLeft).Column
    derncolWk3_3 = Wk3.Sheets("CLIENTS").Cells(1, Cells.Columns.Count).End(xlToLeft).Column
    derncolWk3_4 = Wk3.Sheets("CONTACTS").Cells(1, Cells.Columns.Count).End(xlToLeft).Column
    derncolWk3_5 = Wk3.Sheets("TECHNICIEN - SITE").Cells(1, Cells.Columns.Count).End(xlToLeft).Column
    derncolWk3_6 = Wk3.Sheets("CONTRATS P2").Cells(1, Cells.Columns.Count).End(xlToLeft).Column
     
     
    'création des vecteurs noms colonnes, attention les noms ne doivent pas changer'
    'dans le classeur FICHE DE SYNTHESE'
    nom_col(1) = "CODE_SITE"
    nom_col(2) = "NOM_S"
    nom_col(3) = "LOTS"
    nom_col(4) = "DESIGNATION"
    nom_col(5) = "COMMENTAIRE"
    nom_col(6) = "ADR1_S"
    nom_col(7) = "ADR2_S"
    nom_col(8) = "CP_S"
    nom_col(9) = "VILLE_S"
    nom_col(10) = "CODE_TITRE"
    nom_col(11) = "OBSERVATIONS"
    nom_col(12) = "CODE_CLIENT"
    nom_col(13) = "NOM_C"
    nom_col(14) = "GROUPE"
    nom_col(15) = "ADR1_C"
    nom_col(16) = "ADR2_C"
    nom_col(17) = "CP_C"
    nom_col(18) = "VILLE_C"
    nom_col(19) = "DIRIGEANT"
    nom_col(20) = "TEL_CLIENT"
    nom_col(21) = "Mail"
    nom_col(22) = "Fax"
    nom_col(23) = "CODE_CONTACT"
    nom_col(24) = "NOM2"
    nom_col(25) = "TYPE_CONTACT"
    nom_col(26) = "TEL1"
    nom_col(27) = "TEL2"
    nom_col(28) = "MAIL2"
    nom_col(29) = "NOTIFICATIONS"
    nom_col(30) = "CODE_SECTEUR"
    nom_col(31) = "CODE_TECH"
    nom_col(32) = "NUMERO_CONTRAT"
    nom_col(33) = "INTITULE"
    nom_col(34) = "DATE_DEBUT"
    nom_col(35) = "RECONDUCTION"
    nom_col(36) = "BASE_CONTRAT"
    nom_col(37) = "BI_FACTURABLE"
    nom_col(38) = "OBSERVATIONS2"
    nom_col(39) = "PREVISION_TEMPS"
    nom_col(40) = "TYPE_FACTURATION"
    nom_col(41) = "BASE_NB"
    nom_col(42) = "BASE_DJU"
    nom_col(43) = "CODE_STATION_METEO"
    nom_col(44) = "SURFACE"
     
    'création des vecteurs noms colonnes, attention les noms ne doivent pas changer'
    'dans le classeur IMPORT TWIMM'
    nom_colonne(1) = "CODE_SITE"
    nom_colonne(2) = "NOM"
    nom_colonne(3) = "LOTS"
    nom_colonne(4) = "DESIGNATION"
    nom_colonne(5) = "COMMENTAIRE"
    nom_colonne(6) = "ADR1"
    nom_colonne(7) = "ADR2"
    nom_colonne(8) = "CP"
    nom_colonne(9) = "VILLE"
    nom_colonne(10) = "CODE_TITRE"
    nom_colonne(11) = "OBSERVATIONS"
    nom_colonne(12) = "CODE_CLIENT"
    nom_colonne(13) = "NOM"
    nom_colonne(14) = "GROUPE"
    nom_colonne(15) = "ADR1"
    nom_colonne(16) = "ADR2"
    nom_colonne(17) = "CP"
    nom_colonne(18) = "VILLE"
    nom_colonne(19) = "DIRIGEANT"
    nom_colonne(20) = "TEL"
    nom_colonne(21) = "MAIL"
    nom_colonne(22) = "FAX"
    nom_colonne(23) = "CODE_CONTACT"
    nom_colonne(24) = "NOM"
    nom_colonne(25) = "TYPE_CONTACT"
    nom_colonne(26) = "TEL1"
    nom_colonne(27) = "TEL2"
    nom_colonne(28) = "MAIL"
    nom_colonne(29) = "NOTIFICATIONS"
    nom_colonne(30) = "CODE_SECTEUR"  'vérifier'
    nom_colonne(31) = "CODE_TECH"
    nom_colonne(32) = "NUMERO_CONTRAT"
    nom_colonne(33) = "INTITULE"
    nom_colonne(34) = "DATE_DEBUT"
    nom_colonne(35) = "RECONDUCTION"
    nom_colonne(36) = "BASE_CONTRAT"
    nom_colonne(37) = "BI_FACTURABLE"
    nom_colonne(38) = "OBSERVATIONS"
    nom_colonne(39) = "PREVISION_TEMPS"
    nom_colonne(40) = "TYPE_FACTURATION"
    nom_colonne(41) = "BASE_NB"
    nom_colonne(42) = "BASE_DJU"
    nom_colonne(43) = "CODE_STATION_METEO"
    nom_colonne(44) = "SURFACE"
     
     
    'on commence la lecture dans le classeur fiche de synthèse (Wk2), en  localisant les info à traiter par lecture du nom des colonnes'
    For i = 1 To UBound(nom_col, 1)
        For j = 1 To derncolWk2
            If UCase(nom_col(i)) Like "*" & UCase(Wk2.Sheets("fiche de synthèse").Cells(6, j)) & "*" And UCase(Wk2.Sheets("fiche de synthèse").Cells(6, j)) <> "" Then
                place_col(i) = j
                Exit For
            Else
            End If
        Next
    Next
     
    For i = 1 To UBound(nom_colonne, 1)
        For j = 1 To derncolWk3
            If UCase(nom_colonne(i)) Like "*" & UCase(Wk3.Sheets("SITES").Cells(1, j)) & "*" And UCase(Wk3.Sheets("SITES").Cells(1, j)) <> "" Then
                place_colonne_Wk3(i) = j
                Exit For
            Else
            End If
        Next
    Next
    For i = 1 To UBound(nom_colonne, 1)
        For j = 1 To derncolWk3_2
            If UCase(nom_colonne(i)) Like "*" & UCase(Wk3.Sheets("BâTIMENTS").Cells(1, j)) & "*" And UCase(Wk3.Sheets("BâTIMENTS").Cells(1, j)) <> "" Then
                place_colonne_Wk3(i) = j
                Exit For
            Else
            End If
        Next
    Next
    For i = 1 To UBound(nom_colonne, 1)
        For j = 1 To derncolWk3_3
            If UCase(nom_colonne(i)) Like "*" & UCase(Wk3.Sheets("CLIENTS").Cells(1, j)) & "*" And UCase(Wk3.Sheets("CLIENTS").Cells(1, j)) <> "" Then
                place_colonne_Wk3(i) = j
                Exit For
            Else
            End If
        Next
    Next
    For i = 1 To UBound(nom_colonne, 1)
        For j = 1 To derncolWk3_4
            If UCase(nom_colonne(i)) Like "*" & UCase(Wk3.Sheets("CONTACTS").Cells(1, j)) & "*" And UCase(Wk3.Sheets("CONTACTS").Cells(1, j)) <> "" Then
                place_colonne_Wk3(i) = j
                Exit For
            Else
            End If
        Next
    Next
    For i = 1 To UBound(nom_colonne, 1)
        For j = 1 To derncolWk3_5
            If UCase(nom_colonne(i)) Like "*" & UCase(Wk3.Sheets("TECHNICIEN - SITE").Cells(1, j)) & "*" And UCase(Wk3.Sheets("TECHNICIEN - SITE").Cells(1, j)) <> "" Then
                place_colonne_Wk3(i) = j
                Exit For
            Else
            End If
        Next
    Next
    For i = 1 To UBound(nom_colonne, 1)
        For j = 1 To derncolWk3_6
            If UCase(nom_colonne(i)) Like "*" & UCase(Wk3.Sheets("CONTRATS P2").Cells(1, j)) & "*" And UCase(Wk3.Sheets("CONTRATS P2").Cells(1, j)) <> "" Then
                place_colonne_Wk3(i) = j
                Exit For
            Else
            End If
        Next
    Next
     
     
     
    'code_du_site et les autres doivent être dimensionnés'
     
            ReDim code_du_site(dernligneWk2 - 6)                        '1
            ReDim nom_du_site(dernligneWk2 - 6)                         '2
            ReDim lot_sur_le_site(dernligneWk2 - 6)                     '3
            ReDim designation(dernligneWk2 - 6)                         '4
            ReDim commentaire_sur_le_site(dernligneWk2 - 6)             '5
            ReDim adresse_1_site(dernligneWk2 - 6)                      '6
            ReDim adresse_2_site(dernligneWk2 - 6)                      '7
            ReDim code_postal_site(dernligneWk2 - 6)                    '8
            ReDim ville_du_site(dernligneWk2 - 6)                       '9
            ReDim code_titre(dernligneWk2 - 6)                          '10
            ReDim observation_sur_le_site(dernligneWk2 - 6)             '11
            ReDim code_client(dernligneWk2 - 6)                         '12
            ReDim nom_client(dernligneWk2 - 6)                          '13
            ReDim groupe_du_client(dernligneWk2 - 6)                    '14
            ReDim adresse_1_client(dernligneWk2 - 6)                    '15
            ReDim adresse_2_client(dernligneWk2 - 6)                    '16
            ReDim code_postal_client(dernligneWk2 - 6)                  '17
            ReDim ville_client(dernligneWk2 - 6)                        '18
            ReDim dirigeant(dernligneWk2 - 6)                           '19
            ReDim tel_client(dernligneWk2 - 6)                          '20
            ReDim mail_client(dernligneWk2 - 6)                         '21
            ReDim fax_client(dernligneWk2 - 6)                          '22
            ReDim code_du_contact(dernligneWk2 - 6)                     '23
            ReDim nom_du_contact(dernligneWk2 - 6)                      '24
            ReDim type_contact(dernligneWk2 - 6)                        '25
            ReDim tel1_du_contact(dernligneWk2 - 6)                     '26
            ReDim tel2_du_contact(dernligneWk2 - 6)                     '27
            ReDim mail_du_contact(dernligneWk2 - 6)                     '28
            ReDim notifications_par_rapport_au_contact(dernligneWk2 - 6) '29
            ReDim code_secteur(dernligneWk2 - 6)                        '30
            ReDim code_tech(dernligneWk2 - 6)                           '31
            ReDim numero_contrat(dernligneWk2 - 6)                      '32
            ReDim intitule_du_contrat(dernligneWk2 - 6)                 '33
            ReDim date_debut_contrat(dernligneWk2 - 6)                  '34
            ReDim reconduction_du_contrat(dernligneWk2 - 6)             '35
            ReDim base_contrat(dernligneWk2 - 6)                        '36
            ReDim BI_facturable(dernligneWk2 - 6)                       '37
            ReDim observations_sur_contrat(dernligneWk2 - 6)            '38
            ReDim prevision_temps(dernligneWk2 - 6)                     '39
            ReDim type_facturation(dernligneWk2 - 6)                    '40
            ReDim base_nb(dernligneWk2 - 6)                             '41
            ReDim base_DJU(dernligneWk2 - 6)                            '42
            ReDim code_station_meteo(dernligneWk2 - 6)                  '43
            ReDim surface(dernligneWk2 - 6)                             '44
     
     
    'on récupère les données du classeur fiche de synthèse'
     
           For i = 1 To dernligneWk2 - 6
     
    'on créer des variables temporaires dans la macro'
                    code_du_site(i) = Wk2.Sheets("fiche de synthèse").Cells(i + 6, place_col(1))
                    nom_du_site(i) = Wk2.Sheets("fiche de synthèse").Cells(i + 6, place_col(2))
                    lot_sur_le_site(i) = Wk2.Sheets("fiche de synthèse").Cells(i + 6, place_col(3))
                    designation(i) = Wk2.Sheets("fiche de synthèse").Cells(i + 6, place_col(4))
                    commentaire_sur_le_site(i) = Wk2.Sheets("fiche de synthèse").Cells(i + 6, place_col(5))
                    adresse_1_site(i) = Wk2.Sheets("fiche de synthèse").Cells(i + 6, place_col(6))
                    adresse_2_site(i) = Wk2.Sheets("fiche de synthèse").Cells(i + 6, place_col(7))
                    code_postal_site(i) = Wk2.Sheets("fiche de synthèse").Cells(i + 6, place_col(8))
                    ville_du_site(i) = Wk2.Sheets("fiche de synthèse").Cells(i + 6, place_col(9))
                    code_titre(i) = Wk2.Sheets("fiche de synthèse").Cells(i + 6, place_col(10))
                    observation_sur_le_site(i) = Wk2.Sheets("fiche de synthèse").Cells(i + 6, place_col(11))
                    code_client(i) = Wk2.Sheets("fiche de synthèse").Cells(i + 6, place_col(12))
                    nom_client(i) = Wk2.Sheets("fiche de synthèse").Cells(i + 6, place_col(13))
                    groupe_du_client(i) = Wk2.Sheets("fiche de synthèse").Cells(i + 6, place_col(14))
                    adresse_1_client(i) = Wk2.Sheets("fiche de synthèse").Cells(i + 6, place_col(15))
                    adresse_2_client(i) = Wk2.Sheets("fiche de synthèse").Cells(i + 6, place_col(16))
                    code_postal_client(i) = Wk2.Sheets("fiche de synthèse").Cells(i + 6, place_col(17))
                    ville_client(i) = Wk2.Sheets("fiche de synthèse").Cells(i + 6, place_col(18))
                    dirigeant(i) = Wk2.Sheets("fiche de synthèse").Cells(i + 6, place_col(19))
                    tel_client(i) = Wk2.Sheets("fiche de synthèse").Cells(i + 6, place_col(20))
                    mail_client(i) = Wk2.Sheets("fiche de synthèse").Cells(i + 6, place_col(21))
                    fax_client(i) = Wk2.Sheets("fiche de synthèse").Cells(i + 6, place_col(22))
                    code_du_contact(i) = Wk2.Sheets("fiche de synthèse").Cells(i + 6, place_col(23))
                    nom_du_contact(i) = Wk2.Sheets("fiche de synthèse").Cells(i + 6, place_col(24))
                    type_contact(i) = Wk2.Sheets("fiche de synthèse").Cells(i + 6, place_col(25))
                    tel1_du_contact(i) = Wk2.Sheets("fiche de synthèse").Cells(i + 6, place_col(26))
                    tel2_du_contact(i) = Wk2.Sheets("fiche de synthèse").Cells(i + 6, place_col(27))
                    mail_du_contact(i) = Wk2.Sheets("fiche de synthèse").Cells(i + 6, place_col(28))
                    notifications_par_rapport_au_contact(i) = Wk2.Sheets("fiche de synthèse").Cells(i + 6, place_col(29))
                    code_secteur(i) = Wk2.Sheets("fiche de synthèse").Cells(i + 6, place_col(30))
                    code_tech(i) = Wk2.Sheets("fiche de synthèse").Cells(i + 6, place_col(31))
                    numero_contrat(i) = Wk2.Sheets("fiche de synthèse").Cells(i + 6, place_col(32))
                    intitule_du_contrat(i) = Wk2.Sheets("fiche de synthèse").Cells(i + 6, place_col(33))
                    date_debut_contrat(i) = Wk2.Sheets("fiche de synthèse").Cells(i + 6, place_col(34))
                    reconduction_du_contrat(i) = Wk2.Sheets("fiche de synthèse").Cells(i + 6, place_col(35))
                    base_contrat(i) = Wk2.Sheets("fiche de synthèse").Cells(i + 6, place_col(36))
                    BI_facturable(i) = Wk2.Sheets("fiche de synthèse").Cells(i + 6, place_col(37))
                    observations_sur_contrat(i) = Wk2.Sheets("fiche de synthèse").Cells(i + 6, place_col(38))
                    prevision_temps(i) = Wk2.Sheets("fiche de synthèse").Cells(i + 6, place_col(39))
                    type_facturation(i) = Wk2.Sheets("fiche de synthèse").Cells(i + 6, place_col(40))
                    base_nb(i) = Wk2.Sheets("fiche de synthèse").Cells(i + 6, place_col(41))
                    base_DJU(i) = Wk2.Sheets("fiche de synthèse").Cells(i + 6, place_col(42))
                    code_station_meteo(i) = Wk2.Sheets("fiche de synthèse").Cells(i + 6, place_col(43))
                    surface(i) = Wk2.Sheets("fiche de synthèse").Cells(i + 6, place_col(44))
            Next
     
     
    'on colle les valeurs qui sont stockées dans les variables temporaires dans le fichier à importer sur TWIMM'
    'pour mieux s'y retrouver et plus de facilité, on colle page par page'
     
            For i = 1 To dernligneWk2 - 6
     
     
            Wk3.Sheets("SITES").Cells(i + 1, place_colonne_Wk3(1)) = code_du_site(i)
            Wk3.Sheets("SITES").Cells(i + 1, place_colonne_Wk3(2)) = nom_du_site(i)
            Wk3.Sheets("SITES").Cells(i + 1, place_colonne_Wk3(3)) = lot_sur_le_site(i)
            Wk3.Sheets("SITES").Cells(i + 1, place_colonne_Wk3(6)) = adresse_1_site(i)
            Wk3.Sheets("SITES").Cells(i + 1, place_colonne_Wk3(7)) = adresse_2_site(i)
            Wk3.Sheets("SITES").Cells(i + 1, place_colonne_Wk3(8)) = code_postal_site(i)
            Wk3.Sheets("SITES").Cells(i + 1, place_colonne_Wk3(9)) = ville_du_site(i)
            Wk3.Sheets("SITES").Cells(i + 1, place_colonne_Wk3(10)) = code_titre(i)
            Wk3.Sheets("SITES").Cells(i + 1, place_colonne_Wk3(11)) = observation_sur_le_site(i)
            Wk3.Sheets("SITES").Cells(i + 1, place_colonne_Wk3(12)) = code_client(i)
            Wk3.Sheets("SITES").Cells(i + 1, place_colonne_Wk3(30)) = code_secteur(i)
            Wk3.Sheets("SITES").Cells(i + 1, place_colonne_Wk3(37)) = BI_facturable(i)
            Wk3.Sheets("SITES").Cells(i + 1, place_colonne_Wk3(41)) = base_nb(i)
            Wk3.Sheets("SITES").Cells(i + 1, place_colonne_Wk3(42)) = base_DJU(i)
            Wk3.Sheets("SITES").Cells(i + 1, place_colonne_Wk3(43)) = code_station_meteo(i)
            Wk3.Sheets("SITES").Cells(i + 1, place_colonne_Wk3(44)) = surface(i)
     
            Wk3.Sheets("BâTIMENTS").Cells(i + 1, place_colonne_Wk3(1)) = code_du_site(i)
            Wk3.Sheets("BâTIMENTS").Cells(i + 1, place_colonne_Wk3(4)) = designation(i)
            Wk3.Sheets("BâTIMENTS").Cells(i + 1, place_colonne_Wk3(5)) = commentaire_sur_le_site(i)
     
            Wk3.Sheets("CLIENTS").Cells(i + 1, place_colonne_Wk3(12)) = code_client(i)
            Wk3.Sheets("CLIENTS").Cells(i + 1, place_colonne_Wk3(13)) = nom_client(i)
            Wk3.Sheets("CLIENTS").Cells(i + 1, place_colonne_Wk3(14)) = groupe_du_client(i)
            Wk3.Sheets("CLIENTS").Cells(i + 1, place_colonne_Wk3(15)) = adresse_1_client(i)
            Wk3.Sheets("CLIENTS").Cells(i + 1, place_colonne_Wk3(16)) = adresse_2_client(i)
            Wk3.Sheets("CLIENTS").Cells(i + 1, place_colonne_Wk3(17)) = code_postal_client(i)
            Wk3.Sheets("CLIENTS").Cells(i + 1, place_colonne_Wk3(18)) = ville_client(i)
            Wk3.Sheets("CLIENTS").Cells(i + 1, place_colonne_Wk3(19)) = dirigeant(i)
            Wk3.Sheets("CLIENTS").Cells(i + 1, place_colonne_Wk3(20)) = tel_client(i)
            Wk3.Sheets("CLIENTS").Cells(i + 1, place_colonne_Wk3(21)) = mail_client(i)
            Wk3.Sheets("CLIENTS").Cells(i + 1, place_colonne_Wk3(22)) = fax_client(i)
     
            Wk3.Sheets("CONTACTS").Cells(i + 1, place_colonne_Wk3(23)) = code_du_contact(i)
            Wk3.Sheets("CONTACTS").Cells(i + 1, place_colonne_Wk3(24)) = nom_du_contact(i)
            Wk3.Sheets("CONTACTS").Cells(i + 1, place_colonne_Wk3(25)) = type_contact(i)
            Wk3.Sheets("CONTACTS").Cells(i + 1, place_colonne_Wk3(26)) = tel1_du_contact(i)
            Wk3.Sheets("CONTACTS").Cells(i + 1, place_colonne_Wk3(27)) = tel2_du_contact(i)
            Wk3.Sheets("CONTACTS").Cells(i + 1, place_colonne_Wk3(28)) = mail_du_contact(i)
            Wk3.Sheets("CONTACTS").Cells(i + 1, place_colonne_Wk3(29)) = notifications_par_rapport_au_contact(i)
     
            Wk3.Sheets("TECHNICIEN - SITE").Cells(i + 1, place_colonne_Wk3(31)) = code_tech(i)
     
            Wk3.Sheets("CONTRATS P2").Cells(i + 1, place_colonne_Wk3(32)) = numero_contrat(i)
            Wk3.Sheets("CONTRATS P2").Cells(i + 1, place_colonne_Wk3(33)) = intitule_du_contrat(i)
            Wk3.Sheets("CONTRATS P2").Cells(i + 1, place_colonne_Wk3(34)) = date_debut_contrat(i)
            Wk3.Sheets("CONTRATS P2").Cells(i + 1, place_colonne_Wk3(35)) = reconduction_du_contrat(i)
            Wk3.Sheets("CONTRATS P2").Cells(i + 1, place_colonne_Wk3(36)) = base_contrat(i)
            Wk3.Sheets("CONTRATS P2").Cells(i + 1, place_colonne_Wk3(38)) = observations_sur_contrat(i)
            Wk3.Sheets("CONTRATS P2").Cells(i + 1, place_colonne_Wk3(39)) = prevision_temps(i)
            Wk3.Sheets("CONTRATS P2").Cells(i + 1, place_colonne_Wk3(40)) = type_facturation(i)
     
     
            Next
     
     
     
    Application.ScreenUpdating = True
     
     
    End Sub

  7. #7
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2017
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Septembre 2017
    Messages : 36
    Points : 12
    Points
    12
    Par défaut
    J'ai regardé de plus près en vérifiant colonne par colonne et je remarque que ce qu'il est bien collé dans le fichier final correspond à tous les noms de colonnes qui sont uniques et

    de plus je remarque que la valeur de place_colonne(1) qui correspond à "CODE_SITE" (n°1) et le même que "CODE_CLIENT" (n°12), alors que la valeur de "CODE_CLIENT" devrait être 3 car il doit être coller à la colonne C sur Wk3

  8. #8
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2017
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Septembre 2017
    Messages : 36
    Points : 12
    Points
    12
    Par défaut
    Je pense avoir trouvé le problème !

    c'est que le vecteur place_colonne_Wk3 se remplit totalement autant de fois qu'il y a de feuille sur Wk3. Or il faudrait, il me semble, qu'il remplisse seulement les indices qui l'interesse dans la feuille. Par exemple la boucle qui s'intéresse à la feuille "CLIENTS" doit remplir les place_colonne_Wk3 seulement de l'indice 12 à 22.

    Mais je ne sais pas comment faire cela, pouvez-vous m'aider s'il vous plaît

Discussions similaires

  1. Réponses: 9
    Dernier message: 11/12/2016, 18h22
  2. Comment transférer des données entre deux JFrame
    Par speos dans le forum Agents de placement/Fenêtres
    Réponses: 6
    Dernier message: 23/04/2007, 15h50
  3. Réponses: 4
    Dernier message: 09/08/2006, 18h57
  4. Réponses: 1
    Dernier message: 07/07/2006, 18h13

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