Copier et coller une zone de cellule
Bonjour s'il vous plait j'ai besoin d'une macro qui va me faire du copier coller .
Je veux insérer le nombre de fois que je veux copier/coller ma zone de cellule dans la (cellule P19)
dans l'exemple je veux copier coller 5 fois
ensuite cliquer sur le bouton coller pour copier la zone de cellule remplis (K3:L12) et la coller dans la suite de la colonne K et L .
ce qui veux dire la coller 5 fois Apartir de la ligne 12
regarder l'image svp pour comprendre
merci
![copie](https://forum.excel-pratique.com/file/img/0/41096_ae15a749e9178d676d6cf9441f8ad30f.png)
Bonjour,
En supposant que cette plage de cellules est évulutive:
'Permet de déterminer la dernière ligne en colonne K
Dim i As Long
i = Range("K" & Rows.Count).End(xlUp).Row
'8 correspond à la 8eme colonne donc K
Range(Cells(3, 8), Cells(i, 9)).Select
Selection.Copy
'Selection de l'emplacement où coller
Cells(i+1; 8).Select
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
J'ai pas trouvé par contre pour lui dire de copier le nb de fois. Peux être récupérer la valeur de la cellule dans une variable et faire une boucle FOR (itérer le nombre de fois indiqué dans la cellule). Attention à recalculer le i qui va changer après le premier coller.
Cordialement,
Bonjour,
Essaie ceci (il faut sélectionner la plage à dupliquer avant de lancer la macro)
Sub Dupliquer5Selection()
Dim PlS As Range, hpl%, i%
Set PlS = Selection
hpl = PlS.Rows.Count
For i = 1 To 5
PlS.Offset(i * hpl).Value = PlS.Value
Next i
End Sub
Cordialement.
Merci les amis pour ces réponse rapide
je voudrai svp que la personne saisie le nombre de fois qu'il veux faire le copier coller dans la cellule P19
psq le fichier sera pas utilisé par moi et la personne ne pourra pas entrée modifier les nombre de copier coller dans la macro
c'est pour ca je voudrai bien que ca soit saisie dans cellule P19
merci
c'est bon merci les amis j'ai fais
Sub Dupliquer5Selection()
Dim PlS As Range, hpl%, i%
Set PlS = Selection
hpl = PlS.Rows.Count
For i = 1 To Range("P19").Value
PlS.Offset(i * hpl).Value = PlS.Value
Next i
End Sub
merci
Résolu
Sub DupliquerSelection()
Dim PlS As Range, hpl%, i%, n%
n = Int(Application.InputBox("Nombre de duplications ?", "Dupliquer plage sélectionner", Type:=1))
Set PlS = Selection
hpl = PlS.Rows.Count
For i = 1 To n
PlS.Offset(i * hpl).Value = PlS.Value
Next i
End Sub
Plus logique de demander à l'utilisateur !
oui c'est mieux merciii
MFerrand j'ai une question svp
J'ai une feuille accueil ou j'ai mis des macros qui appel des feuille
dans cette feuille accueil j'ai mis une zone pour faire des notes et commentaire
et ce que je veux c'est que lorsque j’écris un commentaire dans cette zone , il faut qu'il s'enregistre dans la feuilles Notes
merci
![c e](https://forum.excel-pratique.com/file/img/0/41096_8b5706065d663e1c1a9dfbc83a452cf8.png)
![cccc](https://forum.excel-pratique.com/file/img/0/41096_f932f38d421a02c4e27f453a1c238d2f.png)
J'ai une feuille accueil ou j'ai mis des macros qui appel des feuille
Non !
Si je comprends bien ta demande : lorsque que tu cliques sur le rectangle à coins arrondis Notes, tu voudrais que le commentaire porté en D15 soit transféré sur la première ligne vide en colonne B de la feuille Notes.
Quelle macro as-tu affectée à ce rectangle ?
Et confirme-moi D15 car image sans quadrillage, on peut faire des erreurs.
Oui c'est bien ca que je c'est que je veux faire
l'utilisateur dois remplir son commentaire dans la cellules D15 et en cliquant sur le bouton Notes (le carée arrandi en jaune )
le comentaire dois ce trensférer dans la premiére ligne de la feuille Notes
et si on a un deuxiéme commentaire il sera coller dans la 2eme ligne
pour l'instant j'ai rien fais j'ai fais aucune macro je suis trés débutante en vba merci
Voilà qui devrait le faire :
Sub InsérerNote()
Dim nte$, n%
nte = ActiveSheet.Range("D15")
If nte <> "" Then
With Worksheets("Notes")
n = .Cells(.Rows.Count, 2).End(xlUp).Row + 1
.Cells(n, 2) = nte
End With
End If
End Sub
Merci Beaucoup c'est exactement ca
Bonne journée
merci
Bonjour MFerrand j'ai besoin de ton aide stp si c'est possible
en faite c'est une suite de se que tu ma e l'autre jour
je m'explique en faite maintenant j'ai une feuille excel appeler ordonnancement; c'est une feuille ou je choisi les Plat que je veux passer en production ; comme tu va voir sur la photo j'ai choisis (Plat2/Plat3/Plat4/Plat5/Plat5/Plat5) ces plats quand ils sont choisis par l'utilisateur j'ai une macro qui me fais une recherche aléatoir pour chaque plat et ils lui affecte une familles (exemple
voila la macro qui gére la partis du chois des plats
'macro ajout des Plats
Private Sub AjoutPlat(sPlat As String)
Dim kR As Long, v As Single
Dim rngCum As Range
kR = Range("K" & Rows.Count).End(xlUp).Row '--- dernière ligne utilisée en colonne K
kR = kR + 1 '--- ligne sur laquelle il faut indiquer le produit tiré au sort
Set rngCum = Range("F3:H41") '--- plage utilisée pour le tirage
Do
v = Rnd()
Cells(kR, 11) = WorksheetFunction.VLookup(v, rngCum, 2) '--- code produit en colonne 11 (K)
Cells(kR, 12) = WorksheetFunction.VLookup(v, rngCum, 3) '--- plat en colonne 12 (L)
Loop Until Cells(kR, 12) = sPlat
Set rngCum = Nothing
End Sub
voila le code de la partis copier /coller
'Macro pour copier coller les familles selon le besoin
Sub Dupliquer5Selection()
Dim PlS As Range, hpl%, i%, n%
n = Int(Application.InputBox("Nombre de duplications ?", "Dupliquer plage sélectionner", Type:=1))
Set PlS = Selection
hpl = PlS.Rows.Count
For i = 1 To n
PlS.Offset(i * hpl).Value = PlS.Value
Next i
End Sub
ce que je veux mois c'est relié la macro du copier /coller que tu ma fais avec celle de l'aléatoire ; je veux que quand je copier colle la partis choisis par l'utilisateur ; il faux coller juste les plat et partir chercher aléatoirement d'autre famille
comme tu pourra voir sur l'image je veux que la partis en rouge soit pas la même que celle en noir il faux que j'ai d'autres familles ( remarque les familles sont placer dans la feuille "Donnees".
est ce que c'est faisable ou pas
merci beaucoup
![1111](https://forum.excel-pratique.com/file/img/0/41096_725d97f618cefe72d5c7591d4b00cea3.png)
Bonjour,
J'ai un peu de mal à saisir ce que tu veux faire...
Au vu de ta procédure de tirage, je la modifierais ainsi (plus conforme pour un tirage !) que tous ces Range et Cells non qualifiés, donc se référant à la feuille active, me chiffonnent un peu...
'macro ajout des Plats
Private Sub AjoutPlat(sPlat As String)
Dim kR As Long, v As Integer
Dim rngCum As Range
kR = Range("K" & Rows.Count).End(xlUp).Row + 1
Set rngCum = Range("F3:H41")
Randomize
Do
v = Int(rngCum.Rows.Count * Rnd + 1)
Cells(kR, 11) = rngCum.Cells(v, 2)
Cells(kR, 12) = rngCum.Cells(v, 3)
Loop Until Cells(kR, 12) = sPlat
End Sub
NB- Mon intervention ne porte que sur le code, indépendamment de l'action réalisée car je ne connais pas la raison de la boucle Do... Loop...
Et je ne vois pas quel rapport s'établit avec la procédure de collage...
Cordialement.
Bonjour merci pour ta réponse
c'est pas exactement ca que je voulais parce que je viens d'essayer la macro que tu m'a écris elle fait exactement ce que fais la précédente .
ce que je veux faire moi c'est garder cette macro qui ajoute les Plats comme elle est et modifier la macro du (copier/coller)
afin de pouvoir (copier/coller) que la colonne L ( c'est a dire coller que les plats ) et que derrière la macro va m'affecter a ces plat d'autre familles dans la colonne K . pour que a la fin de mon collage j'aurais les familles affecter a mes plats que j'ai coller différent des familles qui sont affecter au plats que j'ai ajouter avec la macro ajoutePlat.
regarde l'image stp et tu va voir ce que je veux faire avec ma macro je veux qu'il me permet de coller juste les Plats qui se trouve dans la colonne L comme j'ai fais sur l'image c'est la zone que j'ai entourer en rouge ; mais derriére je veux que la macro une fois que j'ai coller les plat qu'il va leurs affecter aléatoirement des familles d'article placer dans la feuille("Donnees") colonne K
je veux bien vous envoyer le fichier excel mais malheureusement il est trop grand .
voila le code de la partis copier/coller que tu m'a fais
'Macro pour copier coller les familles selon le besoin
Sub Dupliquer5Selection()
Dim PlS As Range, hpl%, i%, n%
n = Int(Application.InputBox("Nombre de duplications ?", "Dupliquer plage sélectionner", Type:=1))
Set PlS = Selection
hpl = PlS.Rows.Count
For i = 1 To n
PlS.Offset(i * hpl).Value = PlS.Value
Next i
End Sub
![22222](https://forum.excel-pratique.com/file/img/0/41096_ca851b763b1501b527e827f6487c5b44.png)
C'est bon merci beaucoup j'ai trouver la solution merci pour l'aide
Rebonjour est ce que ta reçu mon message privé stp regarde le
Bonjour,
c'est pas exactement ca que je voulais parce que je viens d'essayer la macro que tu m'a écris elle fait exactement ce que fais la précédente .
Heureusement
je t'est envoyer un message privée , en faite je voulais que tu regarde mon fichier excel mais je peux pas te l'envoyer ici il est trés volumineux
je suis bloquer sur un problème depuis ce matin
Bonjour MFerrand j'ai une question stp je veux automatisé une recherche de données que j'ai sur plusieurs onglets et je sais pas comment faire
en faite j'ai un anglet qui s'appelle " Qtité Famille " ou j'ai les nom de toutes mes familles d'article et devant chaque famille on a des colonne qui présise l'appartenance aux "Plat"
si tu regarde la tableau par exemple pour la famille "VT Séché TF" on a "VRAI" dans Plat6 c'est a dire qu'elle sera traité dans Plat6
sauf que moi mes Plat1, Plat2.......,Plat6 corresponde a d'autre onglet qui n'ont pas le méme nom
on reste sur le méme exemple de Plat6
Plat6 elle correspond a l'onglet Pliage main , donc c'est dans l'onglet pliage main ou je vais trouver tous le donner que je cherche
je vous met si joint une image qui représente les donnée et les onglet dans lequel je dois faire la recherche
et le fichier avec tous les donnée que je veux chercher
j'ai vraiment besoin de votre aide je sais pas comment faire ca et si il y'a une possibilité de le faire en macro n'hésite pas stp a me proposé une solution merci beaucoup
![444444](https://forum.excel-pratique.com/file/img/0/41096_23207666f57d900cd387b0e07201efe7.png)
Bonjour J'ai besoin de toi stp pour le memeu sujet du copier /coller
'Macro pour copier coller les familles selon le besoin
Sub Dupliquer5Selection()
Dim sPlat As String
Dim PlS As Range, hpl%, i%, n%
Dim kR As Long, v As Single
Dim RngCum As Range
kR = Range("C" & Rows.Count).End(xlUp).Row '--- dernière ligne utilisée en colonne K
kR = kR + 1 '--- ligne sur laquelle il faut indiquer le produit tiré au sort
n = Int(Application.InputBox("Nombre de duplications ?", "Dupliquer plage sélectionner", Type:=1))
Set PlS = Selection
hpl = PlS.Rows.Count
For i = 1 To n
PlS.Offset(i * hpl).Value = PlS.Value
Next i
Set RngCum = Range("F3:H41") '--- plage utilisée pour le tirage
Do
v = Rnd()
Cells(kR, 11) = WorksheetFunction.VLookup(v, RngCum, 2) '--- code produit en colonne 11 (K)
kR = kR + 1
Loop Until Cells(kR, 12) = sPlat
Set RngCum = Nothing
End Sub
j'ai changer l'emplacement des données qui sont gérer par la partie RngCum et je sais pas qu'est ce que je dois modifier j'ai essayer de modifier des truc mais il me fait erreur 1004 ?
voila l'image de la zone dans la quelle je veux faire le copier/coller
les données ou j'ai les familles sont placé dans la feuille "Donnees")
ce que je voudrais faire stp c'est que quand je séléctionne la zone que je veux coller dans la colonne C de la feuille "Ordonnancement " que je sais le nombre de fois que je veux les coller ( tous ca c'est déja fais dans la macro ) et ensuite il me cherche aléatoirement dans la feuille "Donnees" d'autres familles qui correspondent aux Plats qu j'ai coller et aussi leurs code équipement
merci je vais te mettre stp le lien du fichier parce que il est trop grand
https://www.cjoint.com/c/FHdmFxtgWBh
merci
![cccc](https://forum.excel-pratique.com/file/img/0/41096_b3fe532776402f60c419f4185cdef132.png)