saut de ligne + fusion de cellule + boucle

Y compris Power BI, Power Query et toute autre question en lien avec Excel
Répondre
B
BobbyR
Jeune membre
Jeune membre
Messages : 26
Inscrit le : 15 mai 2017
Version d'Excel : 2013 FR

Message par BobbyR » 15 mai 2017, 11:48

Fiche à copier.xlsx
(8.32 Kio) Téléchargé 6 fois
modèle à remplir.xlsx
(9.22 Kio) Téléchargé 6 fois
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.
M
MFerrand
Fanatique d'Excel
Fanatique d'Excel
Messages : 17'171
Appréciations reçues : 448
Inscrit le : 20 juillet 2015
Version d'Excel : 2010 FR

Message par MFerrand » 15 mai 2017, 12:26

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.
bobbyr.zip
(24.05 Kio) Téléchargé 7 fois
B
BobbyR
Jeune membre
Jeune membre
Messages : 26
Inscrit le : 15 mai 2017
Version d'Excel : 2013 FR

Message par BobbyR » 15 mai 2017, 15:00

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
M
MFerrand
Fanatique d'Excel
Fanatique d'Excel
Messages : 17'171
Appréciations reçues : 448
Inscrit le : 20 juillet 2015
Version d'Excel : 2010 FR

Message par MFerrand » 15 mai 2017, 15:23

Tu les remplaces par quoi ? :D
B
BobbyR
Jeune membre
Jeune membre
Messages : 26
Inscrit le : 15 mai 2017
Version d'Excel : 2013 FR

Message par BobbyR » 15 mai 2017, 15:29

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 ^^
M
MFerrand
Fanatique d'Excel
Fanatique d'Excel
Messages : 17'171
Appréciations reçues : 448
Inscrit le : 20 juillet 2015
Version d'Excel : 2010 FR

Message par MFerrand » 15 mai 2017, 16:42

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.
B
BobbyR
Jeune membre
Jeune membre
Messages : 26
Inscrit le : 15 mai 2017
Version d'Excel : 2013 FR

Message par BobbyR » 15 mai 2017, 21:28

Merci MFERRAND !
Répondre
  • Sujets similaires
    Réponses
    Vues
    Dernier message