Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2013 Récuperer de façon aléatoire

  • Initiateur de la discussion Initiateur de la discussion Tarrain
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Tarrain

XLDnaute Junior
Bonjour,

J'ai un fichier excel avec des données diverses dans 8 colonnes avec pour chaque colonne 53 448 lignes
Dans la colonne G j'ai des adresses mails

Je souhaiterai savoir comment faire pour récupérér à partir de la colonne G ligne de 2 à 53 448 un choix aléatoire de 2000 données (ici des adresses mail) et je mette cela dans la colonne L de 2 à 2002 - Bien sûr il ne faut pas récuperer deux fois la même case (adresse mail)

Merci pour votre aide

bonne journée pluvieuse
 
Bonjour,

Tu peux générer un nombre aléatoire d'une certaine plage de nombres via cette formule :
VB:
Dim NbAleat as Int
NbAleat = Int((ValMax - ValMin + 1) * Rnd + ValMin)
Avec ValMax ta valeur maxi (ici 53448) et ValMin ta valeur mini (ici 2).
Ensuite, il faudrait avoir une mémoire pour conserver les valeurs qui sont déjà sorties, mais Rdn étant une fonction pseudo aléatoire, je doute qu'il te ressorte plusieurs fois la même valeur en 2000 coups (à tester malgré tout).
Ensuite, pour atteindre l'adresse mail de la ligne concernée, tu utilises une fonction telle que (si tes adresses mail sont dans la colonne A) :
Code:
Dim Mail as String
Mail = Range("A" & NbAleat)

Bonne continuation
 
Il te suffit d'aller dans l'onglet "Développeur", ensuite tu crées un bouton de commande, puis clic droit dessus -> Affecter une macro. Ensuite Nouvelle Macro et tu adaptes mes bouts de code ci-dessus à ce que tu veux faire, je pense notamment au fait que tu veuilles peut être noter les adresses mails qqpart, et boucler plutot que d'avoir à cliquer 2000 sur le bouton à chaque tirage.

Bonne continuation
 
Voici un exemple très simple pour te tirer 2000 adresses mail et les stocker dans la colonne B :

VB:
Dim NbAleat as Int
Dim Mail as String

For i = 1 to 2000
    NbAleat = Int((ValMax - ValMin + 1) * Rnd + ValMin)
    Mail = Range("A" & NbAleat)
    Range("B" & i) = Mail
Next i

Je te laisse adapter tous les paramètres à tes besoins et me dire s'il y a des choses que tu voudrais changer/rajouter.

Bonne continuation
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
12
Affichages
463
  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
807
Réponses
4
Affichages
549
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…