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 :

Insérer des données d'un classeur vers un autre classeur une ligne sur deux


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Logisitique
    Inscrit en
    Janvier 2018
    Messages
    192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Logisitique

    Informations forums :
    Inscription : Janvier 2018
    Messages : 192
    Par défaut Insérer des données d'un classeur vers un autre classeur une ligne sur deux
    Bonjour,

    J'ai un classeur que je vais appeler pour la compréhension DESTINATION comportant des lignes vides.
    je voudrais insérer des données venant d'un autre classeur précisément à partie de la ligne 6 dans le classeur DESTINATION
    Dans DESTINATION, Les lignes de la colonne B sont fusionnées par deux (6 et 7, 8 et 9 et ainsi de suite)
    Dans un classeur que je vais appeler PREMIER en colonne A des données numériques classées en ordre croissant et colonne B des données numériques (18 chiffres)
    Dans un classeur que je vais nommer DEUXIEME en colonne A les même données numériques classées en ordre croissant et en colonne B des données numériques 30 chiffres)
    Je ne peux modifier la mise en page du classeur de destination que j'aimerai remplir automatiquement.
    il faudrait:
    Prendre la valeur de A dans PREMIER et le mettre dans B dans DESTINATION pour commencer la boucle en ligne 6 et 7 (fusionnée)
    Prendre la valeur de B dans PREMIER et le mettre dans D dans DESTINATION en ligne 6
    Prendre la valeur de B (valeur de A correspondant à valeur inscrite en B DESTINATION) dans DEUXIEME et le mettre dans D dans DESTINATION en ligne 7

    en boucle sur toutes les lignes (égales dans le classeur PREMIER et DEUXIEME)

    Merci de votre solution, car je dois faire très régulièrement ce copier coller à la main

  2. #2
    Membre Expert
    Inscrit en
    Décembre 2002
    Messages
    993
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 993
    Par défaut
    Salut, j'écris cette macro en supposant que tous les classeurs sont ouverts et les données se trouvent sur la première feuille. A toi d'adapter si besoin.

    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
    Sub CopierDonnees()
        Dim wbDestination As Workbook
        Dim wbPremier As Workbook
        Dim wbDeuxieme As Workbook
        Dim wsDestination As Worksheet
        Dim wsPremier As Worksheet
        Dim wsDeuxieme As Worksheet
        Dim i As Long
        Dim j As Long
     
        'Définir les classeurs et les feuilles de calcul
        Set wbDestination = Workbooks("DESTINATION.xlsx")
        Set wbPremier = Workbooks("PREMIER.xlsx")
        Set wbDeuxieme = Workbooks("DEUXIEME.xlsx")
        Set wsDestination = wbDestination.Sheets(1)
        Set wsPremier = wbPremier.Sheets(1)
        Set wsDeuxieme = wbDeuxieme.Sheets(1)
     
        'Boucle pour copier les données
        j = 6 'Ligne de départ dans DESTINATION
        For i = 1 To wsPremier.Cells(Rows.Count, 1).End(xlUp).Row 'Boucle sur toutes les lignes de PREMIER
            wsDestination.Cells(j, 2).Value = wsPremier.Cells(i, 1).Value 'Copier la valeur de A dans PREMIER dans B dans DESTINATION
            wsDestination.Cells(j, 4).Value = wsPremier.Cells(i, 2).Value 'Copier la valeur de B dans PREMIER dans D dans DESTINATION
            wsDestination.Cells(j + 1, 4).Value = wsDeuxieme.Cells(i, 2).Value 'Copier la valeur de B dans DEUXIEME dans D dans DESTINATION
            j = j + 2 'Passer à la prochaine paire de lignes fusionnées dans DESTINATION
        Next i
    End Sub

Discussions similaires

  1. Réponses: 1
    Dernier message: 22/07/2015, 15h25
  2. Copier des données d'un fichier vers un autre sans écraser le second
    Par jalons dans le forum Shell et commandes GNU
    Réponses: 10
    Dernier message: 09/04/2013, 20h07
  3. Réponses: 2
    Dernier message: 11/10/2010, 14h47
  4. copie des données d'un champ vers un autre
    Par cvlpj dans le forum IHM
    Réponses: 10
    Dernier message: 26/12/2006, 22h15
  5. Réponses: 1
    Dernier message: 26/12/2006, 16h23

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