Séléction d'une zone et copie/coller les donné de cette zone

Barahaoua Messages postés 88 Date d'inscription   Statut Membre Dernière intervention   -  
Barahaoua Messages postés 88 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour les amis

SVP je voudrai rajouter des amélioration a ma macro

la macro si dessous me permet de faire une copie de la zone sélectionner dans la colonne C de la feuille ordonnancement et me cherche d'autre famille aléatoir pour les affecter a la zone que j'ai coller , sauf que maintenant je veux rajouter une condition; c'est que les familles que je veux affecter a la zone que j'ai coller doivent tous avoir un code équipement < 2.

je veus vous mettre le fichier ci joint pour essayer ce qui fonctionne maintenant c'est dans la feuille Ordonnancement

ma macro actuelle me permet de faire ceci :

si je séléctionne une zone dans la colonne C de la feuille ordonnancement j'ai un message box qui sort pour me demander le nombre de fois que je veux coller cette zone dans la colonne C

ensuite elle me colle la zone dans la colonne C et lui affecte des famille aléatoire qui ont différent code équipement

et moi je veux que toute les famille qui seront affecter doivent voir un code équipement inférieur a 2

les données sont dans la colonne P et Q de la feuille "Donnees"

https://www.cjoint.com/c/FHjj3NjWtsh
MERCI BEAUCOUP

   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("A" & Rows.Count).End(xlUp).Row '--- dernière ligne utilisée en colonne A
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 = Worksheets("Donnees").Range("O2:S1000") '--- plage utilisée pour le tirage

Do

v = Rnd()


Cells(kR, 1) = WorksheetFunction.VLookup(v, RngCum, 2) '--- code produit en colonne 1(A)
Cells(kR, 2) = WorksheetFunction.VLookup(v, RngCum, 3) '--- code produit en colonne 1(A)
kR = kR + 1


Loop Until Cells(kR, 3) = splat
Set RngCum = Nothing
End Sub

1 réponse

Barahaoua Messages postés 88 Date d'inscription   Statut Membre Dernière intervention  
 
merci résolu
0