XL 2019 Copie de cellules avec ajout de lignes par référence

  • Initiateur de la discussion Initiateur de la discussion Bormio2
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Bormio2

XLDnaute Nouveau
Bonjour,

Compte tenu de mes connaissances Excel (limitées), je m'interroge sur la faisabilité de l'opération suivante.

J'ai en Feuil1 une liste de références en cellule A1, A2, A3.... (format de cellule texte)

En Feuil2, j'ai une liste d'indicateurs en A1, A2, A3... (format de cellule standard)

Je souhaiterais savoir s'il est possible "simplement" de recopier le contenu de toutes les cellules non vides de la Feuil2 (collone A) dans la Feuil1 (collone B), de manière à ce que cette copie duplique le contenu de la cellule A1 (Feuill1) autant de fois qu'il y a de références en Feuil2.

Je joins un fichier d'exemple pour éclaircir ma demande avec le résultat attendu en Feuil3 sachant que cet exemple est bien sûr limité en volume de données.

Merci à vous pour vos lumières et éventuelles solutions,

Cordialement,
 

Pièces jointes

Solution
Bonjour @Bormio2, le forum

J'ai l'impression que cela concerne ton niveau de sécurité des macros qui bloque l'exécution des macros.

La seule choses que je peux te proposer c'est que tu copies le code dans ton fichier
*Attention tu dois enregistrer ton fichier en .XLSM
1616057656921.png

1616057616941.png


1616058045291.png


voici le code à copier dans ton fichier du post #1 :
VB:
Sub MAJ()
Application.ScreenUpdating = False
Dim Derlig&, DL&
Dim cpt&

With Worksheets("Feuil1")
    Derlig = .Range("A" & Rows.Count).End(xlUp).Row
    DL = Worksheets("Feuil2").Range("A" & Rows.Count).End(xlUp).Row
    .Columns("B:B").Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
    .Columns("B:B").NumberFormat = "@"
    .[B1] = [A1]...
Bonjour Phil,

Merci pour cette réponse et pour le fichier joint.

Malheureusement, "impossible d’exécuter la macro, il est possible qu'elle ne soit pas dans le classeur ou que les macros soient désactivées".

Les macros sont pourtant toutes activées avec "Accès approuvé au modèle d'objet du projet VBA"...

Cordialement,
 
Bonjour @Bormio2, le forum

J'ai l'impression que cela concerne ton niveau de sécurité des macros qui bloque l'exécution des macros.

La seule choses que je peux te proposer c'est que tu copies le code dans ton fichier
*Attention tu dois enregistrer ton fichier en .XLSM
1616057656921.png

1616057616941.png


1616058045291.png


voici le code à copier dans ton fichier du post #1 :
VB:
Sub MAJ()
Application.ScreenUpdating = False
Dim Derlig&, DL&
Dim cpt&

With Worksheets("Feuil1")
    Derlig = .Range("A" & Rows.Count).End(xlUp).Row
    DL = Worksheets("Feuil2").Range("A" & Rows.Count).End(xlUp).Row
    .Columns("B:B").Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
    .Columns("B:B").NumberFormat = "@"
    .[B1] = [A1]
    .[C1] = Worksheets("Feuil2").[A1]
    cpt = 2
    For i = 2 To Derlig
        For j = 2 To DL
            .Range("B" & cpt) = .Range("A" & i).Value
            .Range("C" & cpt) = Worksheets("Feuil2").Range("A" & j).Value
            cpt = cpt + 1
        Next j
    Next i
    .Columns("A:A").Delete Shift:=xlToLeft
End With
End Sub

et voici le dit fichier une nouvelle fois.....

*Edit
J'ai essayé de télécharger mon fichier il fonctione tres bien
As tu accepté les messages lors de l'ouverture du fichier
1616058658500.png

1616058699343.png


@Phil69970
 

Pièces jointes

Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
532
Réponses
2
Affichages
1 K
Retour