Copier donnée d'une colonne vers tout mon classeur

Résolu
Eric -  
 Eric -
Bonjour,

J'ai une petite requête, j'aimerais copier les données d'une colonne dans tous mes autres onglets automatiquement.

J'utilise ce code qui fonctionne très bien (pour ceux que ça peut aider)
Sheets("mafeuilleprincipale").Range("A:A").Copy
ActiveSheet.Paste Destination:=Worksheets("mafeuillededestination").Range("D:D")

Maintenant j'aimerais ne pas viser une feuille comme destination, mais tout mon classeur, pour que ma colonne copier apparaisse dans tous mes onglets.

Merci d'avance

Configuration: Windows / Edge 18.17763

3 réponses

  1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    Bonjour,

    voir ceci pour boucler sur toutes les feuilles:

    https://silkyroad.developpez.com/VBA/FeuilleDeCalcul/

    ce qui donne:

    Option Explicit
    'https://silkyroad.developpez.com/VBA/FeuilleDeCalcul/
    Sub test()
    'Déclare la variable objet Worksheet
    Dim Ws As Worksheet
    'Boucle sur toutes les feuille de calcul du classeur. Les onglets graphiques ne sont pas pris
    'en compte.
    'ThisWorkbook correspond à l'objet classeur contenant la macro
    For Each Ws In ThisWorkbook.Worksheets
        If Ws.Name <> "Feuil1" Then 'adapter le nom de la feuille
    Worksheets("Feuil1").Range("A:A").Copy Destination:=Worksheets(Ws.Name).Range("D:D")
        End If
    Next Ws
    End Sub
    
    

    1
  2. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    bonjour, suggestion:
    Dim src As Range, fdest As Worksheet
    Set src = Sheets("mafeuilleprincipale").Range("A:A")
    For Each fdest In ThisWorkbook.Worksheets
        src.Copy (fdest.[d1])
    Next fdest
    1
    1. Eric
       
      Bonjour yb_be,

      Merci pour ta suggestion, mais je me pose une question avec ton code, serait-il possible de placer un -1 quelque part ou une ligne de code demandant de partir de la feuille "mafeuilleprincipale" sans la prendre compte.
      Et d'appliquer la modification de la boucle comme tu l'as fait, sans appliquer la modification dans la colonne D pour l'onglet "mafeuilleprincipale" ?
      0
      1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588 > Eric
         
        peut-être ainsi:
        Const nomfp As String = "mafeuilleprincipale"
        Dim src As Range, fdest As Worksheet
        Set src = Sheets(nomfp).Range("A:A")
        For Each fdest In ThisWorkbook.Worksheets
            If fdest.Name <> nomfp Then
                src.Copy (fdest.[D1])
            End If
        Next fdest
        0
      2. Eric > yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention  
         
        Parfait !

        Un immense merci à toi
        0
  3. Eric
     
    Bonjour,

    Je ne parviens pas à ouvrir le lien, mais merci beaucoup pour le code !
    0