Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Problème duplication avec array

  • Initiateur de la discussion Initiateur de la discussion patsyl60
  • 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 !

patsyl60

XLDnaute Occasionnel
Bonjour le fil,

Suite à un ancien post de ma part :

https://www.excel-downloads.com/threads/probleme-avec-duplication.113803/

j'ai un souci.

Mon objcectif est de dupliquer des tarifs sur plusieurs établissements. Mais lorsque j'utilise la formule de gael, cela fonctionne bien sur le 1er etablissement ( le 02) mais pour les autres, il me recopie plusieurs fois les mêmes articles. C'est evident lorsque l'on regarde la formule, celle ci recopie de la derniere ligne jusque la ligne 02. Je pense qu'il faudrait nommer la plage selectionnée au début et la dupliquer à chaque fois. Mais je ne sais pas le faire en VBA.

En pièce jointe, le fichier minimisé avec 2 lignes sachant que l'original peut contenir entre 150 et 200 lignes ( nombre different à chaque fois).

Pouvez vous m'aider ?

D'avance merci.

Patsyl60 😕
 

Pièces jointes

Re : Problème duplication avec array

Bonsoir le fil,


J'avance petit à petit sur ma formule avec l'enregistreur de macros.

Je pense avoir fait le plus dur mais il me reste un problème.

Je pense que cela vient de ma formule :

With Selection.Offset(0, 5).Resize(derlig - 1, 1)
.Cells = Ets(i - 1)

Il me met des numéro d'un ets sans article.

Je mets en pièce jointe mon fichier modifié.

D'avance, merci de votre aide.

Patsyl60 😕
 

Pièces jointes

Re : Problème duplication avec array

Bonjour Patsyl60, bonjour à tous,

Essaye le code suivant:

Code:
Sub duplic2()
    Dim i, Ets
    
    Ets = Array("02", "03", "05", "06")
    
    Sheets("copie").Select
    derlig = [a65000].End(xlUp).Row
    Range("A2").Select
    Range(Selection.End(xlDown), Selection.End(xlToRight)).Select
    
    
    For i = 1 To 4
    Sheets("copie").Activate
    Selection.Copy
    
    Sheets("Feuil1").Activate
       Range("a65536").End(xlUp).Offset(1, 0).Select
       ActiveSheet.Paste
       
    With Selection.Offset(0, 5).Resize(derlig - 1, 1)
        .Cells = Ets(i - 1)
        .NumberFormat = "00"
    End With
    
    Next i
   Range("a1").Select
 
End Sub

Derlig contient le nombre de lignes de la zone à recopier, il n'est initialisé qu'une fois et tu avais une erreur car comme il était dans la boucle, sa valeur augmentait à chaque recopie de données.

Sinon, il n'est pas utile de refaire la sélection à chaque fois dans la feuille "Copie", c'est pourquoi j'ai mis ce code en dehors de la boucle.

@+

Gael
 
Re : Problème duplication avec array

Merci Gael pour cette réponse claire. Cela correspond parfaitement à ce que j'ai besoin. Et en plus j'ai tout compris.

Encore merci.

Patsyl60 😉
 
- 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

M
Réponses
4
Affichages
1 K
MarinaF
M
X
Réponses
9
Affichages
2 K
Xavier313131
X
M
  • Question Question
Réponses
3
Affichages
1 K
MelissaJoubert
M
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…