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 :

Copie de données de plusieurs classeurs en un seul [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2013
    Messages : 10
    Par défaut Copie de données de plusieurs classeurs en un seul
    Bonjour tout le monde,

    Mon problème est assez simple.

    J'aimerai copier quelques colonnes identiques sur chaque feuilles dans une autre feuille et que le tout se mette a la suite.

    J'ai joint le fichier en question Plans_cave_scan_access.xlsx et j'aimerai que les données de toutes les feuilles commencant par 00303 jusqu'a la fin arrivent comme la représentation sur la feuille transfert.

    Est ce que quelqu'un pourrait m'aider !! Merci d'avance.

  2. #2
    Membre émérite Avatar de keygen08
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations forums :
    Inscription : Octobre 2012
    Messages : 545
    Par défaut
    Bonjour

    Voila un début d'idée

    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
    Private Sub devellopez_com()
     Dim i As Integer, j As Integer
     Dim Feuil As String
     Dim lig As Integer
     Dim lig2 As Integer
     Dim lig3 As Integer
     
     i = ActiveWorkbook.Sheets.Count
     
     For j = 7 To i
     
     Feuil = Worksheets(j).Name
     
     lig = Feuil1.Range("g65000").End(xlUp).Row + 2
     
     Feuil1.Range("a" & lig).Value = Feuil
     Feuil1.Range("b" & lig).Value = Sheets(Feuil).Range("d2").Value
     Feuil1.Range("c" & lig).Value = Sheets(Feuil).Range("c9").Value
     Feuil1.Range("d" & lig).Value = "DGO " & Sheets(Feuil).Range("a2").Value
     
    lig1 = Sheets(Feuil).Range("a9").End(xlDown).Row
    lig2 = Sheets(Feuil).Range("a65000").End(xlUp).Row
    lig3 = Feuil1.Range("g65000").End(xlUp).Row
    Sheets(Feuil).Range("a9:d11").Copy Feuil1.Range("e" & lig)
     
     Next j
     
    End Sub
    J'aime bien le "Assez simple"

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2013
    Messages : 10
    Par défaut remerciement
    Merci beaucoup pour ton aide.

    Je viens de tester le code et il me sort superbement bien les données concernant le nivellement. Je vais l'adapter pour les autres données.

    Je te remercie grandement pour ton aide apportée.

  4. #4
    Membre émérite Avatar de keygen08
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations forums :
    Inscription : Octobre 2012
    Messages : 545
    Par défaut
    Bonsoir

    Celle ci est complete, il reste la mise en page et la verification a faire.

    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
    Private Sub devellopez_com()
     Dim i As Integer, j As Integer
     Dim Feuil As String
     Dim lig As Integer
     Dim lig2 As Integer
     Dim plan As Integer
     Dim archive As Integer
    application.screenupdating = false
     
     i = ActiveWorkbook.Sheets.Count
     
     For j = 7 To i
     
     Feuil = Worksheets(j).Name
     
     lig = Feuil1.Range("g65000").End(xlUp).Row + 2
     
     Feuil1.Range("a" & lig).Value = Feuil
     Feuil1.Range("b" & lig).Value = Sheets(Feuil).Range("d2").Value
     Feuil1.Range("c" & lig).Value = Sheets(Feuil).Range("c9").Value
     Feuil1.Range("d" & lig).Value = "DGO " & Sheets(Feuil).Range("a2").Value
     
    lig2 = Sheets(Feuil).Range("A12").End(xlUp).Row
    If lig2 = 8 Then
    lig2 = 9
    End If
     
    For plan = 9 To lig2
    If Sheets(Feuil).Range("c" & plan) <> "" Then
    Sheets(Feuil).Range("a" & plan & ":b" & plan).UnMerge
    Sheets(Feuil).Range("a" & plan & ":d" & plan).Copy Feuil1.Range("e" & lig)
    Sheets(Feuil).Range("a" & plan & ":b" & plan).Merge True
    lig = lig + 1
    End If
    Next plan
     
    lig1 = Sheets(Feuil).Range("A65000").End(xlUp).Row
        If lig1 = 15 Then
        lig1 = 16
        End If
     
    For archive = 16 To lig1
    If Sheets(Feuil).Range("c" & archive) <> "" Then
     Feuil1.Range("a" & lig).Value = Feuil
     Feuil1.Range("b" & lig).Value = Sheets(Feuil).Range("d2").Value
     Feuil1.Range("c" & lig).Value = Sheets(Feuil).Range("c9").Value
     Feuil1.Range("d" & lig).Value = "DGO " & Sheets(Feuil).Range("a2").Value
     
        Sheets(Feuil).Range("a" & archive & ":b" & archive).UnMerge
        Sheets(Feuil).Range("a" & archive & ":d" & archive).Copy Feuil1.Range("e" & lig)
        Sheets(Feuil).Range("a" & archive & ":b" & archive).Merge True
        Feuil1.Range("E" & lig).Cut Destination:=Feuil1.Range("F" & lig)
     lig = lig + 1
    End If
    Next archive
     
     Next j
    application.screenupdating = true
    End Sub
    Une fois lancer, cela mouline un peu, 288 feuille !!(en gros dix mn)
    La feuille 2965 provoque deux erreur a cause des donnees contenu a la fois dans la colonne A et B

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2013
    Messages : 10
    Par défaut un grand merci
    Un grand merci pour cette aide :-)

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

Discussions similaires

  1. [XL-2007] Récupérer des données de plusieurs classeurs fermés
    Par hdisnice dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 02/12/2011, 10h10
  2. [XL-2007] Copier des données de plusieurs classeurs sur une feuille récap
    Par chipster008 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 09/08/2011, 11h12
  3. [XL-2007] comment migrer des données entre plusieurs classeurs excel
    Par Iichham dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 10/06/2011, 14h28
  4. récuperé dans une feuille les donnés de plusieur classeurs fermé
    Par peygase83 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 10/02/2009, 18h31
  5. Copie de données depuis un classeur fermé
    Par kiki29 dans le forum Contribuez
    Réponses: 0
    Dernier message: 15/03/2008, 18h36

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