XL 2010 VBA - Macro Copier une selection en dessous d'un Test

sp0ty

XLDnaute Nouveau
Bonjour,

J'ai deux fichiers : A (Données) et B (Synthèse)
Mon objectif est de copier les données de mon tableau du fichier A,
Et insérer dans le fichier B, à chaque fois qu'une cellule nommée "Synthèse" est détectée, en dessous de cette cellule mon tableau copié.

J'ai une macro existante qui se termine par Selection.Copy. (Fichier B)

La ou je pêche, étant débutant dans le VBA c'est de créer une boucle pour pouvoir insérer (Coller) mes données en dessous à chaque fois que Synthèse apparait.

J'ai éssayé des If avec Find, Range, adress sans succès...
Est-ce vous pouvez m'aider svp?
sp0ty
 

Pièces jointes

  • A.xlsx
    9.1 KB · Affichages: 42
  • B.xlsx
    8.2 KB · Affichages: 47

pierrejean

XLDnaute Barbatruc
Bonjour Spoty

Macro a mettre dans B
Sub copie()
Set wA = Workbooks("A.xlsx")
Set wB = ThisWorkbook
For n = 1 To Range("B" & Rows.Count).End(xlUp).Row
If Range("B" & n) = "Synthèse" Then
wA.Sheets("Feuil1").Range("B2:F6").Copy Destination:=Range("B" & n + 1)
End If
Next
End Sub
 

Lone-wolf

XLDnaute Barbatruc
Bonjour pierrejean :), sp0ty :), le Forum :)

Un autre exemple plus ou moins identique

VB:
Option Explicit

Sub test()
Dim plage As Range, derlig As Long, i As Long
Dim WbA As Workbook, WbB As Workbook

    Set WbA = Workbooks.Open("A.xlsx")

    With WbA.Sheets("Tableaux")
        Set plage = .Range("b2:f6")
    End With

    Set WbB = ThisWorkbook

    With WbB.Sheets("Synthèse")
        derlig = .Range("b" & Rows.Count).End(xlUp).Row

        For i = 4 To derlig 
            If .Cells(i, 2) = "Synthèse" Then plage.Copy .Cells(i + 1, 2)
        Next i
    End With

End Sub

Attention! Une fois le tableau copié il faut éffacer "Synthèse".
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 176
Messages
2 085 965
Membres
103 069
dernier inscrit
jujulop