Saut de ligne + fusion de cellule + boucle

Bonjour à tous,

Je suis un novice en VBA et je cherche une ame charitable pouvant m'aider ^^

Mon problème est : j'ai une liste de nom dans plusieurs colonnes à copier dans des cellules fusionnées (6 cellules fusionnées par nom) d'un autre classeur.

Et j'aimerai faire tout ça en boucle tout en faisant reconnaitre à excel les cellules vides de ma table du fichier "Fiche à copier" car j'ai d'autres fichiers avec des tables plus ou moins longues.

De plus, s'il est possible de faire sauter des lignes pour chaque cellule fusionnée ce serait extremement genial !!

Merci pour votre aide d'avance

Ps: voici les deux classeurs, en pièce jointe.

Bonjour,

Plage source nommée : PlageàCopier

En tête feuille cible nommée : EnTête

Sub ReportFiche()
    Dim PlàC, i%, j%
    PlàC = Workbooks("bobbyr_Fiche à copier.xlsx").Names("PlageàCopier").RefersToRange.Value
    Application.ScreenUpdating = False
    With [EnTête].Cells(1, 1)
        For i = 1 To UBound(PlàC, 1)
            For j = 1 To UBound(PlàC, 2)
                .Offset((i - 1) * 7 + 1, j - 1).Value = PlàC(i, j)
            Next j
        Next i
    End With
End Sub

Cordialement.

NB- Les deux classeurs doivent être ouverts.

7bobbyr.zip (24.05 Ko)

Merci MFerrand pour votre réponse.

Effectivement votre code VBA fonctionne mais quand je remplace les noms en gras du code :

Sub ReportFiche()

Dim PlàC, i%, j%

PlàC = Workbooks("bobbyr_Fiche à copier.xlsx").Names("PlageàCopier").RefersToRange.Value

Application.ScreenUpdating = False

With [EnTête].Cells(1, 1)

For i = 1 To UBound(PlàC, 1)

For j = 1 To UBound(PlàC, 2)

.Offset((i - 1) * 7 + 1, j - 1).Value = PlàC(i, j)

Next j

Next i

End With

End Sub

je reçois un message d'erreur de type "1004" = erreur définie par l'application ou par l'objet.

Pouvez-vous m'expliquer votre raisonnement sur ce code svp

Tu les remplaces par quoi ?

1) Pour cette ligne :

PlàC = Workbooks("bobbyr_Fiche à copier.xlsx").Names("PlageàCopier").RefersToRange.Value

je remplace ("bobbyr_Fiche à copier.xlsx") par mon fichier source, mais pour ("PlageàCopier") je ne sais pas à quoi ça correspond.

2) Pour cette ligne :

With [EnTête].Cells(1, 1), je ne sais pas à quoi correspond [EnTête].Cells(1, 1)

3) Pouvez-vous m'expliquer ce que signifie le code entier svp ^^

Il faut que tu commences par savoir ce qu'est un nom ! une plage nommée !

Tu sélectionnes ta plage source, celle qui est à copier, puis onglet Formules > Définir un nom : tu tapes le nom : PlageàCopier et tu valides.

Même chose pour la ligne d'en-tête de ta zone cible, que tu nommes EnTête (la configuration doit être identique à ton modèle (ligne juste au-dessus de la première cellule à servir).

Cordialement.

Merci MFERRAND !

Rechercher des sujets similaires à "saut ligne fusion boucle"