Copier une plage selon une liste

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

T

topo

Guest
Bonjour,

Je teste, je teste, mais je n'y arrive toujours pas !!! 😡

Ci joint le fruit pourri de mon labeur ...
je cherche à créer une de données à partir d'une liste déja préétablie en feuil2:
- dans la feuill1, la base de données à partir du premier élément de ma liste en Feuil2\C2
- dans la feuil2, la liste à utiliser est colonne C, que j'ai nommé "societe"

Je souhaite dupliquer cette base pour chaque cellule de ma liste en renommant dans la colonne A le bon nom. La base de données doit être dupliquer dans la feuil1 à la suite.

j'ai écrit ça, mais je n'arrive pas à configurer une boucle pour qu'il duplique en fonction de la liste

PHP:
Sub Dupliquer()

Dim derligne As Long
Dim i
For i = 1 To Range("societe").End(xlUp).Row
    
    Sheets("Feuil1").Select
    Range("A1:Z20").Select
    Selection.Copy
    derligne = Range("A65536").End(xlUp).Row + 1
    Cells(derligne, 1).Select
        ActiveSheet.Paste
    Selection.Replace What:=i, Replacement:=i + 1, LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
Next i

End Sub

en fait, je ne sais pas configurer la boucle ...

Merci beacoup de votre aide !

Topo
 

Pièces jointes

Re : Copier une plage selon une liste

bonjour,

désolé si je ne suis pas clair ... en plus, oui "societe" est en B ...

On doit :
- quoi : dupliquer la base de données de la feuille 1 autant de fois qu'il y a d'élément dans la liste (77 dans l'exemple)
-quoi2 : la plage dupliquée doit prendre le nom de l'élément de la liste (pour la première duplication, GE5 doit remplacer FR22 dans la colonne A)
- ou : la duplication se fait à la suite de la base de données existante (dans l'exemple, à partir de la ligne 21; 41; 61 ... 77 fois)

j'espère avoir été plus clair ! Merci beaucoup pour cette aide !
 
Re : Copier une plage selon une liste

bonjour topo CHALET53
comme j'ai compris a tester????

Code:
Sub es()
Dim z As Long, i As Long, x As Long, c As Variant
Application.ScreenUpdating = False
Sheets("Feuil1").Select
Set c = Range("b1", Cells(Rows.Count, "n").End(xlUp))
z = 20: x = 1
For i = 2 To Sheets("Feuil2").Cells(Rows.Count, 2).End(xlUp).Row
Sheets("Feuil1").Range(Cells(x, 1), Cells(z, 1)) = Sheets("Feuil2").Cells(i, 2)
x = x + 20: z = z + 20
c.Copy Destination:=Range("b" & Rows.Count).End(xlUp)(2)
Next i
End Sub
 
Re : Copier une plage selon une liste

Génial !!!!
c'est impressionnant !!! par contre j'ai rien compris à la manip ...
je vais étudier tout ça ...

Merci Laetitia90 !!!!! et merci aussi d'avoir jeté un oeil Chalet 53 !!!
 
Re : Copier une plage selon une liste

re, je me demande si dans ton cas en l'ecrivant comme cela c'est pas mieux en terme de vitesse vu que c'est des nombres aleatoire apres on peut l'ecrire avec with

Code:
Sub es()
Dim z As Long, i As Long, x As Long
Application.ScreenUpdating = False
Sheets("Feuil1").Select
z = 20: x = 1
For i = 2 To Sheets("Feuil2").Cells(Rows.Count, 2).End(xlUp).Row
Range(Cells(x, 1), Cells(z, 1)) = Sheets("Feuil2").Cells(i, 2)
x = x + 20: z = z + 20
Next i
Range("b1:n" & Cells.Find("*", , , , , xlPrevious).Row).FillDown
End Sub
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
15
Affichages
788
Réponses
10
Affichages
663
Réponses
10
Affichages
791
Réponses
2
Affichages
399
Retour