Génération de données de test aléatoires (Microsoft Excel)
Lorsque vous développez des feuilles de calcul qui seront utilisées par d’autres personnes, vous devez tester ces feuilles de calcul pour vous assurer qu’elles fonctionnent comme prévu.
Cela est particulièrement vrai des feuilles de calcul contenant des formules complexes ou qui seront utilisées à des fins critiques. Le concept de test d’une feuille de calcul signifie que vous devrez générer une sorte de données à utiliser pour tester la feuille de calcul.
Des livres entiers ont été écrits sur la création de suites de tests pour les logiciels. Votre rigueur dans la compilation des données de test dépend, en grande partie, des besoins de votre public et de la nature de votre feuille de travail.
Malheureusement, il n’y a pas de remède rapide qui déterminera automatiquement ce dont vous avez besoin et générera les données pour vous. Cependant, il existe des outils dans Excel que vous pouvez utiliser à cette fin.
Premièrement, si vous devez générer des valeurs numériques aléatoires, vous pouvez utiliser les fonctions de feuille de calcul RAND ou RANDBETWEEN. La différence est que RAND génère une valeur entre 0 et 1 et RANDBETWEEN génère des valeurs entières entre toutes les limites que vous définissez.
Cependant, les données aléatoires peuvent ne pas convenir à vos besoins de test. Cela est particulièrement vrai lorsque vous testez les limites de vos formules.
Par exemple, des tests avec de grandes valeurs, de petites valeurs ou une combinaison de grandes et de petites valeurs. De même, vous souhaiterez peut-être tester des valeurs inappropriées, comme utiliser du texte comme entrée plutôt que des nombres (ou vice versa). Il y a tout un contingent de conditions auxquelles vous devez réfléchir, puis choisir le type de données qui convient à vos besoins.
Si vous préférez, vous pouvez utiliser des macros pour générer des données de test. La macro suivante remplit une plage sélectionnée de cellules avec une valeur numérique aléatoire, entre les limites (minimum et maximum) que vous définissez.
Sub RandNums() Dim MyRange As Range Dim lMin As Long, lMax As Long Dim dRand As Double ' If selection is not Excel Range If TypeName(Selection) <> "Range" Then Exit Sub Set MyRange = Selection ' Get Min and Max value lMin = CLng(InputBox("Minimum?")) lMax = CLng(InputBox("Maximum?")) Randomize Application.ScreenUpdating = False For Each c In MyRange.Cells ' Calculate random value, where ' Value >= Min And Value <= Max dRand = Rnd * (lMax - lMin) + lMin ' Use the following line only if the random ' value should be an integer ' dRand = Int(dRand) c.Value = dRand Next c Application.ScreenUpdating = True End Sub
Pour utiliser la macro, sélectionnez simplement une plage de cellules que vous souhaitez contenir des valeurs numériques aléatoires, puis exécutez la macro. Si vous devez utiliser des valeurs entières dans les cellules, vous pouvez « décommenter » la ligne notée dans la macro.
Si vous souhaitez remplir une plage de cellules avec des dates aléatoires, une légère modification de la macro RandNums entraîne les résultats suivants.
Sub RandDates() Dim MyRange As Range Dim dtMin As Date, dtMax As Date Dim dtRand As Date ' If selection is not Excel Range If TypeName(Selection) <> "Range" Then Exit Sub Set MyRange = Selection ' Get Min and Max value ' From: 1/1/1990 (put your start Date) dtMin = #1/1/1990# ' To: Today dtMax = Date Randomize Application.ScreenUpdating = False For Each c In MyRange.Cells ' Calculate random value, where ' Value >= Min And Value <= Max dtRand = Rnd * (dtMax - dtMin) + dtMin dtRand = Int(dtRand) c.Value = dtRand ' Change format for cell, below, as desired c.NumberFormat = "m/d/yyyy" Next c Application.ScreenUpdating = True End Sub
Encore une fois, sélectionnez simplement une plage, puis exécutez la macro. Vous pouvez modifier les valeurs initiales définies pour les variables dtMin et dtMax afin de spécifier les limites des dates souhaitées. Vous pouvez également, si vous le souhaitez, modifier la mise en forme appliquée aux cellules une fois la date aléatoire stockée dans les cellules.
_Note: _
Si vous souhaitez savoir comment utiliser les macros décrites sur cette page (ou sur toute autre page des sites ExcelTips), j’ai préparé une page spéciale qui comprend des informations utiles.
lien: / excelribbon-ExcelTipsMacros [Cliquez ici pour ouvrir cette page spéciale dans un nouvel onglet de navigateur]
.
ExcelTips est votre source pour une formation Microsoft Excel rentable.
Cette astuce (7989) s’applique à Microsoft Excel 2007, 2010, 2013, 2016, 2019 et Excel dans Office 365. Vous pouvez trouver une version de cette astuce pour l’ancienne interface de menu d’Excel ici:
link: / excel-Generating_Random_Testing_Data [Génération de données de test aléatoires]
.