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

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 cccc

J'ai une feuille accueil ou j'ai mis des macros qui appel des feuille

Non ! J'espère que tu as mis les macros dans un module, et que tu t'es contenté de les affecter à un bouton ou forme quelconque sur ta feuille Accueil, sinon cela a peu de chance de fonctionner comme prévu.

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 lat2 a la famille torchon )

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

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

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 ! J'ai juste arrangé pour produire le même résultat dans de meilleures conditions : initialiser le générateur de nombres aléatoires, produire un entier par tirage, extraire directement le résultat au lieu d'utiliser un fonction....

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 sais pas quoi faire ?

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

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
Rechercher des sujets similaires à "copier coller zone"