Sauter lignes X fois selon valeur cellule + colonne X fois

Bonjour,

14tests.xlsm (26.32 Ko)

Voici ma problématique.

Je souhaite générer un code aléatoire de 10 caractères (cette partie est ok).

Le principe est que j'aurai une liste de nom sur une ligne, avec en dessous un chiffre indiquant le nombre de code à générer pour chacun des noms.

J'arrive à générer 1 code pour uniquement 1 nom, mais pas duppliquer selon valeur de cellule.

Est-ce que c'est possible de m'indiquer quelque pistes ?

Merci par avance de tout aide !

JM

UP : j'ai réussi à sauter les lignes avec ce code, me reste à changer de colonne.

Sub code_aleatoire()
Randomize

carac = "ABCDEFGHIJKLMNOPQRSTUVWXYZ123456789"
ligne = Range("C6").Select
nombre = Range("C5").Value
colonne = Cells(1, Cells.Columns.Count).End(xlToLeft).Column

For j = 1 To nombre
code_alea = ""
    For i = 1 To 10 '10 = longueur du code
        nombre_aleatoire = Int(Len(carac) * Rnd) + 1
        code_alea = code_alea & Mid(carac, nombre_aleatoire, 1)
        Selection.Value = code_alea
    Next
Range("C" & ActiveCell.Row + 1).Select

Next
End Sub

bonjour,

un essai :

Sub code_aleatoire()
     Randomize

     carac = "ABCDEFGHIJKLMNOPQRSTUVWXYZ123456789"
     ligne = Range("C6").Select
     nombre = Range("C5").Value

     For i1 = 6 To 20 Step 2     'à partir de la ligne 6 les lignes paires
          For i2 = 3 To 12 Step 3     'à partir de la colonne 3 chaque multiple de 3
               code_alea = ""
               For i = 1 To 10     '10 = longueur du code
                    nombre_aleatoire = Int(Len(carac) * Rnd) + 1
                    code_alea = code_alea & Mid(carac, nombre_aleatoire, 1)
               Next
               Cells(i1, i2).Value = code_alea     'cette cellule

          Next
     Next

End Sub

Bonjour @BsAlv,

Désolé mais ton code ne m'aide pas vraiment

Ce n'est pas exactement ce que je souhaitais.

J'ai un peu avancé de mon côté, peut être que ça pourra t'éclairer sur mon objectif. J'arrive à faire le décalage de colonne, mais maintenant que cela fonctionne, je ne parviens pas à générer le nombre de codes souhaité dans les autres colonnes (ça fonctionne que sur la première colonne).

C'est cette ligne que je n'arrive pas à adapter

Range("C" & ActiveCell.Row + 1).Select

Je reposte le fichier avec le nouveau code.

Merci par avance pour l'aide !

16tests.xlsm (27.53 Ko)

bonjour,

sélectionner est quelque chose on essaie à éviter

Sub code_aleatoire()

     Randomize

     x = 3

     carac = "ABCDEFGHIJKLMNOPQRSTUVWXYZ123456789"
     nbcol = Cells(4, Columns.Count).End(xlToLeft).Column     'dernière cellule de la ligne 4

     Range("C6:F20").ClearContents     'effacer cette plage

     For x = 3 To nbcol     'quelle colonne
          nbdefois = Cells(5, x).Value
          For j = 1 To nbdefois
               code_alea = ""
               For i = 1 To 10     '10 = longueur du code
                    nombre_aleatoire = Int(Len(carac) * Rnd) + 1
                    code_alea = code_alea & Mid(carac, nombre_aleatoire, 1)
               Next
               Cells(5 + j, x).Value = code_alea     'cette cellule = ligne 6 + j - 1 = 5+j et colonne x SANS SELECTIONNER
          Next
     Next
End Sub

Bonjour

Bonjour à tous

Une variante

19tests-v1.xlsm (26.12 Ko)

Bye !

Bonjour,

C'est parfait merci beaucoup

Bonne journée à bientôt !

Rechercher des sujets similaires à "sauter lignes fois valeur colonne"