Note: The other languages of the website are Google-translated. Back to English
Se connecter  \/ 
x
or
x
INSCRIPTION  \/ 
x

or

Comment générer des chaînes de caractères aléatoires dans une plage dans Excel?

Parfois, vous devrez peut-être générer des chaînes aléatoires dans les cellules, telles que des mots de passe différents. Cet article tente de vous montrer quelques astuces pour générer différentes chaînes aléatoires dans Excel.

Générer des chaînes de caractères aléatoires avec des formules
Générer des chaînes de caractères aléatoires avec le code VBA
Générez facilement des chaînes de caractères aléatoires avec Kutools for Excel


Générer des chaînes de caractères aléatoires avec des formules

Les formules suivantes peuvent vous aider à générer des nombres aléatoires, des lettres et des valeurs alphanumériques dans une plage dans Excel.

1. Pour créer un nombre aléatoire à 5 chiffres entre 10000 et 99999, utilisez cette formule: = RANDBETWEEN (10000,99999)et appuyez sur Entrer , un nombre à 5 chiffres sera affiché dans une cellule, puis sélectionnez la cellule et faites glisser la poignée de recopie vers la plage dans laquelle vous souhaitez contenir cette formule, une plage de nombres à 5 chiffres a été générée, voir les captures d'écran:

doc-generate-strings1 -2 doc-generate-strings2

Notes: vous pouvez modifier les arguments pour répondre à vos besoins.

2. Pour créer une lettre aléatoire, utilisez la formule suivante: = CHAR (RANDBETWEEN (65,90)). Cette formule peut générer une lettre aléatoire de a à z, si vous devez créer quatre lettres aléatoires, vous devez utiliser le caractère & pour ajouter les lettres. Tel que = CHAR (RANDBETWEEN (65,90)) & CHAR (RANDBETWEEN (65,90)) & CHAR (RANDBETWEEN (65,90)) & CHAR (RANDBETWEEN (65,90)). Ensuite, vous obtiendrez quatre lettres aléatoires, puis faites glisser la poignée de recopie vers la plage dans laquelle vous souhaitez contenir cette formule. Voir la capture d'écran:

doc-generate-strings3

Notes:

(1.) La formule est valide dans Excel 2007, 2010 et 2013, mais pas dans Excel 2003. Dans Excel 2003, veuillez utiliser la formule = CHAR (INT (RAND () * 25 + 65)) & CHAR (INT (RAND () * 25 + 65)) & CHAR (INT (RAND () * 25 + 65)) & CHAR (INT (RAND () * 25 + 65))

(2.) Dans la formule 65 est A et 90 est Z.

(3.) Vous pouvez utiliser le caractère & pour ajouter le nombre de lettres dont vous avez besoin.

3. Pour créer une chaîne alphanumérique aléatoire composée de deux lettres et de deux chiffres, utilisez cette formule: = CHAR (RANDBETWEEN (65,90)) & CHAR (RANDBETWEEN (65,90)) & RANDBETWEEN (10,99) Et vous obtiendrez les chaînes suivantes dans une plage contenant deux lettres et deux chiffres:

doc-generate-strings4

Notes: vous pouvez changer les arguments pour obtenir le nombre de chiffres dont vous avez besoin, et utiliser & pour ajouter le nombre de lettres.

Générez facilement des chaînes de caractères aléatoires dans la plage sélectionnée:

Il est facile de générer des chaînes de caractères aléatoires avec des caractères spécifiques et une longueur de texte avec le Insérer des données aléatoires utilité de Kutools pour Excel.
Téléchargez Kutools for Excel maintenant! (Parcours gratuit de 30 jours)


Générer des chaînes de caractères aléatoires avec le code VBA

Si vous pensez que les formules ci-dessus sont difficiles et gênantes, le code VBA suivant peut vous aider beaucoup plus facilement. Veuillez faire comme ceci:

1. Maintenez le ALT + F11 clés, et il ouvre le Microsoft Visual Basic pour applications fenêtre.

2. Cliquez insérer > Moduleet collez la macro suivante dans le Module fenêtre.

Public Function RandomizeF(Num1 As Integer, Num2 As Integer)
'Update 20131107
Dim Rand As String
Application.Volatile
getLen = Int((Num2 + 1 - Num1) * Rnd + Num1)
Do
    i = i + 1
    Randomize
    Rand = Rand & Chr(Int((85) * Rnd + 38))
Loop Until i = getLen
RandomizeF = Rand
End Function

3. Puis enregistrez et fermez le code, dans une cellule, entrez cette fonction = RandomizeF (x, y) pour insérer une chaîne de caractères aléatoires d'une longueur minimale de x caractères et d'une longueur maximale de y caractères.

4. Dans cet exemple, j'utiliserai la fonction = RandomizeF (5,10) pour générer une chaîne de caractères comprenant entre 5 et 10 caractères. Puis appuyez Entrer , sélectionnez la cellule et faites glisser la poignée de recopie vers la plage dans laquelle vous souhaitez contenir cette fonction. Et aléatoire de chaînes de caractères alphanumériques et spécifiques qui ont été créées entre 5 et 10 caractères. Voir la capture d'écran:

doc-generate-strings5


Générer des chaînes de caractères aléatoires avec Kutools for Excel

Existe-t-il un moyen de générer des chaînes aléatoires avec des lettres, des chiffres et des caractères spéciaux, ou plus? Kutools pour Excel's Insérer des données aléatoires est un excellent générateur de nombres aléatoires (et de chaînes de texte), qui peut générer des nombres aléatoires, des chaînes de texte aléatoires ou des nombres aléatoires, du texte et des symboles avec toutes sortes de caractères, y compris des lettres, des chiffres, des caractères spéciaux, des espaces et même des chaînes personnalisées.

Avant d'appliquer Kutools pour Excel, S'il vous plaît téléchargez et installez-le d'abord.

1. Sélectionnez une plage dans laquelle vous générerez des chaînes aléatoires, puis cliquez sur Kutools > insérer > Insérez des données aléatoires. Voir capture d'écran:

3. Dans le Insérer des données aléatoires boîte de dialogue, cliquez sur Chaîne et choisissez le type de caractères dont vous avez besoin, puis spécifiez la longueur de la chaîne dans le Longueur de chaine et enfin cliquez sur le OK bouton. Voir la capture d'écran:

Ensuite, la plage sélectionnée a été remplie avec des chaînes de caractères aléatoires.

Trucs: si vous souhaitez générer ou insérer des chaînes de données de mise en forme spécifiées (telles que ???? @. ??. com) dans une plage, vous pouvez également utiliser cet utilitaire. Faites comme ceci:

1. Sélectionnez une plage et spécifiez les caractères et cochez Par masque. Saisissez ensuite les chaînes de données spécifiées dont vous avez besoin. Voir la capture d'écran:

Notes: En utilisant ? pour indiquer un chiffre de caractère aléatoire dans les dernières chaînes de mise en forme spécifiées.

2. Puis clique OK or Appliquer. Les chaînes de données de mise en forme spécifiées ont été générées de manière aléatoire comme suit. Voir la capture d'écran:

Kutools pour Excel's Insérer des données aléatoires peut vous aider à traiter facilement les opérations suivantes dans une cellule de plage.

  • Générer ou insérer des nombres aléatoires dans une plage
  • Générer ou insérer une date aléatoire dans une plage
  • Générer ou insérer une liste personnalisée dans une plage

  Si vous souhaitez bénéficier d'un essai gratuit (30 jours) de cet utilitaire, veuillez cliquer pour le télécharger, puis passez à appliquer l'opération selon les étapes ci-dessus.


Démo: générer des chaînes de caractères aléatoires dans une plage


Article connexe:


Les meilleurs outils de productivité de bureau

Kutools for Excel résout la plupart de vos problèmes et augmente votre productivité de 80%

  • Réutilisation: Insérer rapidement formules complexes, graphiques et tout ce que vous avez utilisé auparavant; Crypter les cellules avec mot de passe; Créer une liste de diffusion et envoyer des e-mails ...
  • Barre Super Formula (modifiez facilement plusieurs lignes de texte et de formule); Disposition de lecture (lire et modifier facilement un grand nombre de cellules); Coller dans la plage filtrée...
  • Fusionner les cellules / lignes / colonnes sans perdre de données; Contenu des cellules divisées; Combiner des lignes / colonnes en double... Empêcher les cellules en double; Comparer les gammes...
  • Sélectionnez Dupliquer ou Unique Lignes; Sélectionnez les lignes vides (toutes les cellules sont vides); Super Find et Fuzzy Find dans de nombreux classeurs; Sélection aléatoire ...
  • Copie exacte Plusieurs cellules sans changer la référence de formule; Créer automatiquement des références à plusieurs feuilles; Insérer des puces, Cases à cocher et plus encore ...
  • Extrait du texte, Ajouter du texte, Supprimer par position, Supprimer l'espace; Créer et imprimer des sous-totaux de pagination; Conversion entre le contenu et les commentaires des cellules...
  • Super filtre (enregistrer et appliquer des schémas de filtrage à d'autres feuilles); Tri avancé par mois / semaine / jour, fréquence et plus; Filtre spécial par gras, italique ...
  • Combiner des classeurs et des feuilles de travail; Fusionner les tableaux en fonction des colonnes clés; Diviser les données en plusieurs feuilles; Conversion par lots xls, xlsx et PDF...
  • Plus de 300 fonctionnalités puissantes. Prend en charge Office / Excel 2007-2019 et 365. Prend en charge toutes les langues. Déploiement facile dans votre entreprise ou organisation. Essai gratuit de 30 jours. Garantie de remboursement de 60 jours.
onglet kte 201905

Office Tab apporte une interface à onglets à Office et simplifie considérablement votre travail

  • Activer l'édition et la lecture par onglets dans Word, Excel, PowerPoint, Publisher, Access, Visio et Project.
  • Ouvrez et créez plusieurs documents dans de nouveaux onglets de la même fenêtre, plutôt que dans de nouvelles fenêtres.
  • Augmente votre productivité de 50% et réduit des centaines de clics de souris chaque jour!
bas de cabine
Say something here...
symbols left.
You are guest
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    Carl · 4 years ago
    I found this useful as a starting point--I hadn't touched VBA in several years, so it was way easier to use the sample code here as a basis than start from scratch.

    Skelly1008, have you thought about something like this?

    Do
    Randomize
    charVal = (Int(85 * Rnd) + 48)
    If charVal > &H30 And charVal < &H7A Then
    If Not (charVal > &H5A And charVal < &H61) Then
    If Not (charVal > &H39 And charVal < &H41) Then
    newChar = Chr(charVal)
    Rand = Rand & newChar
    End If
    i = i + 1
    End If
    End If
    Loop Until i = getLen

    That generates strings that contain only a-z, A-Z, and 0-9.
  • To post as a guest, your comment is unpublished.
    skelly1008 · 4 years ago
    I'm looking for a code that can generate any number 0 to 9 and or any letter A to Z. But I need 25 characters in the that final out put.
  • To post as a guest, your comment is unpublished.
    Nuno Figueiredo · 4 years ago
    Found way:
    1st: For each char: =RANDBETWEEN(0;1) to randomly select a number or a letter (result in A2 to A9, for example)
    2nd: =IF(An=0;RANDBETWEEN(0;9);CHAR(RAND()*26+97)) - in B2 to B9 -> to generate a number or a letter depending on result in A column
    3rd: in the cell you want the generated password: =B2&B3&B4&B5&B6&B7&B8&B9
  • To post as a guest, your comment is unpublished.
    JoJo · 5 years ago
    I live the formula but once I enter something in another field the numbers in the random fields change. I only want it to randomly generate one time. Not every time I enter data in other fields on the worksheet. Is that a separate function? Thanks!
  • To post as a guest, your comment is unpublished.
    rOHIT · 5 years ago
    Hi I want one help from you. I have to replace one last three values in this text for example: LoadTesting . I want to change only last three word of it
    • To post as a guest, your comment is unpublished.
      Jingle · 5 years ago
      [quote name="rOHIT"]Hi I want one help from you. I have to replace one last three values in this text for example: LoadTesting . I want to change only last three word of it[/quote]
      Assuming it is in cell A1:
      [code] =MID(A1,1,LEN(A1)-3)&"CAT" [/code]
  • To post as a guest, your comment is unpublished.
    Philip · 5 years ago
    Hi,

    On generating the random number in excel,can we insert the value to a form?any query plz share
  • To post as a guest, your comment is unpublished.
    Samantha R. · 5 years ago
    This is several times better than I dared hope for!! I completely disregarded the idea of generating several values in a single cell. Guaranteed I'll be using this info every chance I get! 11/10.
  • To post as a guest, your comment is unpublished.
    simone · 6 years ago
    Hi i would like to make the same in a MS WORD tab. is it possible ?
  • To post as a guest, your comment is unpublished.
    Adam · 6 years ago
    The VBA isn't working as a true random number. I'm using (10,12) as the criteria and if I run it down a couple thousand rows and do a countif formula in the adjacent column I find many duplicate passwords.
  • To post as a guest, your comment is unpublished.
    Carly · 6 years ago
    Very helpful, thank you.
    Using the VBA code, is it possible to only show letters and numbers and not other symbols?
  • To post as a guest, your comment is unpublished.
    Valentino · 6 years ago
    it works :)
    But every time he is generating new passwords, if i select or generate on another cell, previewed ones are changing all the time, and i want to not to change them. please help
    • To post as a guest, your comment is unpublished.
      HelloKelly · 6 years ago
      Hi,
      (1) After generation new passwords, you can copy them, and then paste as values.

      (2) See this article: [url]http://www.extendoffice.com/documents/excel/2496-excel-random-number-stop-changing.html[/url]
  • To post as a guest, your comment is unpublished.
    curtis · 7 years ago
    Is there a way to keep the values from changing every time I change a different field in the sheet? The passwords re-randomize every time something is changed in the sheet at all.
  • To post as a guest, your comment is unpublished.
    mel · 7 years ago
    hi,
    I need to create unique codes - how can I test to ensure the codes are not duplicated?
  • To post as a guest, your comment is unpublished.
    lineth peou · 7 years ago
    thank you for posting use full formula.
  • To post as a guest, your comment is unpublished.
    Anil Choudhary · 7 years ago
    How to do the randbetween for jan to dec string.
    • To post as a guest, your comment is unpublished.
      HelloKelly · 7 years ago
      Hi Anil Choudhary,

      You can try our Kutools for Excel. Click the Kutools > Insert Tools > Insert Random Data, and then in the Random Data dialog box, click the Custom list tab. Here you can select the custom list of month names, and then click OK.

      You can see the steps in detail at: http://www.extendoffice.com/product/kutools-for-excel/excel-random-number-generator.html#a4
  • To post as a guest, your comment is unpublished.
    Crystal · 7 years ago
    VBA method worked great. Thanks so much. I really needed this!
    Take care...
  • To post as a guest, your comment is unpublished.
    Dan88 · 7 years ago
    I was wondering if there was a way to add a generic word to the beginning of each generated code, i.e. DISCOUNT56979, DISCOUNT88531, etc. The reason I ask is so that I can track discounts used from different leads.
    • To post as a guest, your comment is unpublished.
      HelloKelly · 7 years ago
      In the Insert Random Data dialog box, there is a [b]By mask[/b] option on the String tab that can help you.

      For example, Add the “DISCOUNT” before the 5 random characters, please check the [b]By mask[/b] option, and then enter the “[i][b]DISCOUNT?????[/b][/i]” in the following box.
      • To post as a guest, your comment is unpublished.
        RRK · 6 years ago
        Try This: ="DISCOUNT"&RANDBETWEEN(10000,99999)
        This Code is for 5 Random numeric character after "Discount"

        For alphanumeric try this:
        ="DISCOUNT"&CHAR(RANDBETWEEN(65,90))& CHAR(RANDBETWEEN(65,90)) & CHAR(RANDBETWEEN(65,90)) & CHAR(RANDBETWEEN(65,90))&RANDBETWEEN(0,9)

        or

        ="DISCOUNT"&CHAR(RANDBETWEEN(65,90))& CHAR(RANDBETWEEN(65,90)) & CHAR(RANDBETWEEN(65,90))&RANDBETWEEN(10,99)
  • To post as a guest, your comment is unpublished.
    JD99 · 7 years ago
    Hi Guys,
    I would like to exclude zeros, O's and X's from the randomly generated string. How is best to achieve this? Many thanks
    • To post as a guest, your comment is unpublished.
      HelloKelly · 7 years ago
      Hi,
      It is impossible to exclude some characters from the random string when they are generating with the methods in this article.

      However, you can replace the excluded characters with other letters or numbers in the random strings.

      First of all select these strings, and then open the Find and Replace dialog box with hotkeys of Ctrl + F, at last replace each excluded character with a specified letter or number.
  • To post as a guest, your comment is unpublished.
    HappyE · 8 years ago
    Thanks for your sharing. For generate random alphanumeric function is not working in Excel 2003 version. Also, how to make it to 8 digits instead of 4?
    • To post as a guest, your comment is unpublished.
      HelloKelly · 8 years ago
      Hi HappyE,
      To generate 8 digits of random alphanumeric, you can repeat the & CHAR(INT(RAND() * 25 + 65)) 8 times in the function. That’s meaning the function changes to:

      =CHAR(INT(RAND( )* 25 + 65)) & CHAR(INT(RAND() * 25 + 65)) & CHAR(INT(RAND() * 25 + 65)) & CHAR(INT(RAND() * 25 + 65))& CHAR(INT(RAND() * 25 + 65)) & CHAR(INT(RAND() * 25 + 65)) & CHAR(INT(RAND() * 25 + 65))& CHAR(INT(RAND() * 25 + 65))
      • To post as a guest, your comment is unpublished.
        MayZ · 7 years ago
        HelloKelly,
        Great formula, thanks for posting it as I've found it very useful generating passwords. Do you know how to generate it without repeating characters at all? Example - it just returned "JUUJFENQ" but I can't have the repeating 'UU'.
        TIA,
        MayZ
  • To post as a guest, your comment is unpublished.
    HelloKelly · 8 years ago
    Hi LAurent,

    Thank you for your comment. I am very sorry the first method with formula (=CHAR) works well in Excel 2007 and 2010, but not Excel 2003. In Excel 2003, you can try the formula

    =CHAR(INT(RAND()* 25 + 65))
    or
    =CHAR(INT(RAND()* 25 + 65)) & CHAR(INT(RAND()* 25 + 65)) & CHAR(INT(RAND()* 25 + 65)) & CHAR(INT(RAND()* 25 + 65))

    By the way, the VBA code works fine in Excel 2003, and we recommend you try it.
  • To post as a guest, your comment is unpublished.
    LAurent · 8 years ago
    Great tuto
    but The function does not work for me using EXCEL 2003