[EXCEL] - Tirage aléatoire dans un fichier
Résolu
pissdrunk
Messages postés
66
Statut
Membre
-
Camille -
Camille -
Bonjour,
Je travaille actuellement sur un fichier *.xls avec comme intitulés de colonne: Identifiant - Nom - Prénom - Email.
J'ai en quelque sorte un fichier représentant une population.
Je souhaiterais, à partir de ce fichier, pouvoir extraire un échantillon aléatoire de ce fichier avec une invite qui me demanderait combien de personnes faudrait il tirer. L'échantillon serait alors inséré sur une nouvelle feuille avec les mêmes infos qu'au début pr chaque personne tirée aléatoirement (Identifiant, Nom, Prenom, Email).
Pr info: Il ne faudrait pas qu'une personne puisse apparaître plus d'une fois dans l'échantillon.
Je ne sais pas commentr m'y prendre car je ne m'y connais que très très peu en programmation.
D'avance merci pour votre aide !
Cordialement,
Jean.
Je travaille actuellement sur un fichier *.xls avec comme intitulés de colonne: Identifiant - Nom - Prénom - Email.
J'ai en quelque sorte un fichier représentant une population.
Je souhaiterais, à partir de ce fichier, pouvoir extraire un échantillon aléatoire de ce fichier avec une invite qui me demanderait combien de personnes faudrait il tirer. L'échantillon serait alors inséré sur une nouvelle feuille avec les mêmes infos qu'au début pr chaque personne tirée aléatoirement (Identifiant, Nom, Prenom, Email).
Pr info: Il ne faudrait pas qu'une personne puisse apparaître plus d'une fois dans l'échantillon.
Je ne sais pas commentr m'y prendre car je ne m'y connais que très très peu en programmation.
D'avance merci pour votre aide !
Cordialement,
Jean.
A voir également:
- Télécharger tirage au sort excel gratuit
- Telecharger ccleaner gratuit - Télécharger - Nettoyage
- Word et excel gratuit - Guide
- Télécharger clavier arabe - Télécharger - Divers Web & Internet
- Telecharger photofiltre 7 gratuit - Télécharger - Retouche d'image
- Télécharger excel 2013 gratuit - Télécharger - Tableur
21 réponses
Y'a t il une formule dans EXCEL permettant de faire ca ? ou faut-il passer par une macro ?
D'avance merci pour vos réponses.
D'avance merci pour vos réponses.
bonjour,
Voilà un exemple sur ce lien : https://www.cjoint.com/?ellqqVdYFN
A toi de l'adapter à ton besoin ...
bon courage
;o)
polux
Voilà un exemple sur ce lien : https://www.cjoint.com/?ellqqVdYFN
A toi de l'adapter à ton besoin ...
bon courage
;o)
polux
de rien, content que ça solutionne ton blème
Bon courage pour la suite
;o)
Polux
Bon courage pour la suite
;o)
Polux
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Génial...Tout simplement génial.
Ca fonctionne!
Je n'ai plus qu'à le tester sur un fichier encore plus grand...pourvu que ca marche!;-)
en tout cas, je te remercie d'avoir pris du temps pour m'aider.
Et Bonnes Vacances!
;-)
Christelle
Ca fonctionne!
Je n'ai plus qu'à le tester sur un fichier encore plus grand...pourvu que ca marche!;-)
en tout cas, je te remercie d'avoir pris du temps pour m'aider.
Et Bonnes Vacances!
;-)
Christelle
Bonjour,
J'ai la meme question que Jean. Le problème, c'est que votre lien n'est plus valide. Serait-il possible que vous me fassiez parvenir votre réponse?
"Je travaille actuellement sur un fichier *.xls avec comme intitulés de colonne: Identifiant - Nom - Prénom - Email.
J'ai en quelque sorte un fichier représentant une population.
Je souhaiterais, à partir de ce fichier, pouvoir extraire un échantillon aléatoire de ce fichier avec une invite qui me demanderait combien de personnes faudrait il tirer. L'échantillon serait alors inséré sur une nouvelle feuille avec les mêmes infos qu'au début pr chaque personne tirée aléatoirement (Identifiant, Nom, Prenom, Email).
Pr info: Il ne faudrait pas qu'une personne puisse apparaître plus d'une fois dans l'échantillon.
Je ne sais pas commentr m'y prendre car je ne m'y connais que très très peu en programmation.
D'avance merci pour votre aide !
Cordialement,
Jean."
Très cordialement.
Christelle
J'ai la meme question que Jean. Le problème, c'est que votre lien n'est plus valide. Serait-il possible que vous me fassiez parvenir votre réponse?
"Je travaille actuellement sur un fichier *.xls avec comme intitulés de colonne: Identifiant - Nom - Prénom - Email.
J'ai en quelque sorte un fichier représentant une population.
Je souhaiterais, à partir de ce fichier, pouvoir extraire un échantillon aléatoire de ce fichier avec une invite qui me demanderait combien de personnes faudrait il tirer. L'échantillon serait alors inséré sur une nouvelle feuille avec les mêmes infos qu'au début pr chaque personne tirée aléatoirement (Identifiant, Nom, Prenom, Email).
Pr info: Il ne faudrait pas qu'une personne puisse apparaître plus d'une fois dans l'échantillon.
Je ne sais pas commentr m'y prendre car je ne m'y connais que très très peu en programmation.
D'avance merci pour votre aide !
Cordialement,
Jean."
Très cordialement.
Christelle
Bonjour,
Je n'avais pas gardé le fichier. J'en ai refait un autre en espèrant que ça réponde à ton problème:
https://www.cjoint.com/?hknn6VveFK
Bon courage
;o)
Polux
Je n'avais pas gardé le fichier. J'en ai refait un autre en espèrant que ça réponde à ton problème:
https://www.cjoint.com/?hknn6VveFK
Bon courage
;o)
Polux
Re...
En fait, je viens de regarder de plus près le fichier...mais il bugue...seuls les tirages de 1 et 2 lignes fonctionnent. Les autres font buguer le programme.
Bizarre...
Je vais essayer de regarder de plus près, mais je ne suis pas très très douée en VBA...
;-)
Christelle
En fait, je viens de regarder de plus près le fichier...mais il bugue...seuls les tirages de 1 et 2 lignes fonctionnent. Les autres font buguer le programme.
Bizarre...
Je vais essayer de regarder de plus près, mais je ne suis pas très très douée en VBA...
;-)
Christelle
Re,
Je pense que le programme beug parce qu'il n'y a pas assez de personnes dans la feuille 1. Je n'ai mis que 10 lignes, donc plus l'échantillon est grand, plus le programme mouline pour ne pas avoir de doublon ...
;o)
Je pense que le programme beug parce qu'il n'y a pas assez de personnes dans la feuille 1. Je n'ai mis que 10 lignes, donc plus l'échantillon est grand, plus le programme mouline pour ne pas avoir de doublon ...
;o)
Re,
Oui, mais lorsqu'on demande 5 échantillons, ca bugue dans le fichier que vous avez fourni. or, il n'y a pas plus de données (je n'ai rien modifié).
Oui, mais lorsqu'on demande 5 échantillons, ca bugue dans le fichier que vous avez fourni. or, il n'y a pas plus de données (je n'ai rien modifié).
Bonjour,
Ce n'est pas grave. J'ai regardé le fichier hier, mais je ne trouve pas la solution. parfois le tirage me ressort les lignes d'en-têtes plusieurs fois, parfois, il ressort le bon nombre qu'on lui demande, mais parfois, il ne ressort pas le bon nombre de tirage...Bref, je ne comprends pas comment débuguer le programme.
ca plante à partir de là :
For i = 1 To nbTirage
ws2.Range("A" & lg).Value = ws1.Range("A" & tabTirage(i)).Value
ws2.Range("B" & lg).Value = ws1.Range("B" & tabTirage(i)).Value
ws2.Range("C" & lg).Value = ws1.Range("C" & tabTirage(i)).Value
ws2.Range("D" & lg).Value = ws1.Range("D" & tabTirage(i)).Value
lg = lg + 1
Next i
Merci de vos éclairages...
Christelle
Ce n'est pas grave. J'ai regardé le fichier hier, mais je ne trouve pas la solution. parfois le tirage me ressort les lignes d'en-têtes plusieurs fois, parfois, il ressort le bon nombre qu'on lui demande, mais parfois, il ne ressort pas le bon nombre de tirage...Bref, je ne comprends pas comment débuguer le programme.
ca plante à partir de là :
For i = 1 To nbTirage
ws2.Range("A" & lg).Value = ws1.Range("A" & tabTirage(i)).Value
ws2.Range("B" & lg).Value = ws1.Range("B" & tabTirage(i)).Value
ws2.Range("C" & lg).Value = ws1.Range("C" & tabTirage(i)).Value
ws2.Range("D" & lg).Value = ws1.Range("D" & tabTirage(i)).Value
lg = lg + 1
Next i
Merci de vos éclairages...
Christelle
Bonjour,
je ne vais pas avoir le temps de décortiquer ça aujourd'hui (j'ai pas mal de boulot à finir avant de partir en congés ce soir).
Je te conseille de passer tout le code en mode pas à pas en mettant un point d'arrêt dès le début du programme.
Ca permet de voir comment le programme se comporte.
;o)
je ne vais pas avoir le temps de décortiquer ça aujourd'hui (j'ai pas mal de boulot à finir avant de partir en congés ce soir).
Je te conseille de passer tout le code en mode pas à pas en mettant un point d'arrêt dès le début du programme.
Ca permet de voir comment le programme se comporte.
;o)
ok ce n'est pas grave, je vais me débrouiller autrement.
J'ai déjà fait le pas à pas détaillé et c'est sur la partie que j'ai copier dans le précédent message que ca bugue lors du programme.
Bonne vacances.
J'ai déjà fait le pas à pas détaillé et c'est sur la partie que j'ai copier dans le précédent message que ca bugue lors du programme.
Bonne vacances.
ça me chiffonne ce truc, je vais y jeter un oeil entre 12 et 14h ... screugneudiouuu ... on va lui tordre le cou .. :DD
;o)
;o)
Re,
Je viens de regarder ton nouveau fichier. en effet, cela fonctionne mieux.
Par contre, j'essaie de l'adapter à une autre liste plus longue et avec plus de colonnes, mais je n'arrive pas à le faire bien marcher.
j'ai modifié le code suivant, pour mettre le nombre de colonnes que j'ai actuellement :
If j = 2 Then
ws2.Range("A" & j).Value = ws1.Range("A" & alea).Value
ws2.Range("B" & j).Value = ws1.Range("B" & alea).Value
ws2.Range("C" & j).Value = ws1.Range("C" & alea).Value
ws2.Range("D" & j).Value = ws1.Range("D" & alea).Value
ws2.Range("E" & j).Value = ws1.Range("E" & alea).Value
ws2.Range("F" & j).Value = ws1.Range("F" & alea).Value
ws2.Range("G" & j).Value = ws1.Range("G" & alea).Value
ws2.Range("H" & j).Value = ws1.Range("H" & alea).Value
ws2.Range("I" & j).Value = ws1.Range("I" & alea).Value
End If
If doesExist(ws1.Range("A" & alea).Value) = False Then
ws2.Range("A" & j).Value = ws1.Range("A" & alea).Value
ws2.Range("B" & j).Value = ws1.Range("B" & alea).Value
ws2.Range("C" & j).Value = ws1.Range("C" & alea).Value
ws2.Range("D" & j).Value = ws1.Range("D" & alea).Value
ws2.Range("E" & j).Value = ws1.Range("E" & alea).Value
ws2.Range("F" & j).Value = ws1.Range("F" & alea).Value
ws2.Range("G" & j).Value = ws1.Range("G" & alea).Value
ws2.Range("H" & j).Value = ws1.Range("H" & alea).Value
ws2.Range("I" & j).Value = ws1.Range("I" & alea).Value
i = i + 1
Y a t il autre chose à modifier??
Je viens de regarder ton nouveau fichier. en effet, cela fonctionne mieux.
Par contre, j'essaie de l'adapter à une autre liste plus longue et avec plus de colonnes, mais je n'arrive pas à le faire bien marcher.
j'ai modifié le code suivant, pour mettre le nombre de colonnes que j'ai actuellement :
If j = 2 Then
ws2.Range("A" & j).Value = ws1.Range("A" & alea).Value
ws2.Range("B" & j).Value = ws1.Range("B" & alea).Value
ws2.Range("C" & j).Value = ws1.Range("C" & alea).Value
ws2.Range("D" & j).Value = ws1.Range("D" & alea).Value
ws2.Range("E" & j).Value = ws1.Range("E" & alea).Value
ws2.Range("F" & j).Value = ws1.Range("F" & alea).Value
ws2.Range("G" & j).Value = ws1.Range("G" & alea).Value
ws2.Range("H" & j).Value = ws1.Range("H" & alea).Value
ws2.Range("I" & j).Value = ws1.Range("I" & alea).Value
End If
If doesExist(ws1.Range("A" & alea).Value) = False Then
ws2.Range("A" & j).Value = ws1.Range("A" & alea).Value
ws2.Range("B" & j).Value = ws1.Range("B" & alea).Value
ws2.Range("C" & j).Value = ws1.Range("C" & alea).Value
ws2.Range("D" & j).Value = ws1.Range("D" & alea).Value
ws2.Range("E" & j).Value = ws1.Range("E" & alea).Value
ws2.Range("F" & j).Value = ws1.Range("F" & alea).Value
ws2.Range("G" & j).Value = ws1.Range("G" & alea).Value
ws2.Range("H" & j).Value = ws1.Range("H" & alea).Value
ws2.Range("I" & j).Value = ws1.Range("I" & alea).Value
i = i + 1
Y a t il autre chose à modifier??
non je ne pense pas, le nombre de ligne est mis à jour automatiquement au lancement avec la fonction compteLigne()
Peux-tu me dire où ça ne marche pas ?
Peux-tu me dire où ça ne marche pas ?
oui ca met erreur d'execution 13 : débogage
et ca me renvoit sur la ligne :
If doesExist(ws1.Range("A" & alea).Value) = False Then
car j'ai fait le pas à pas détaillé après cette ligne et ca fonctionne.
voila
;-)
et ca me renvoit sur la ligne :
If doesExist(ws1.Range("A" & alea).Value) = False Then
car j'ai fait le pas à pas détaillé après cette ligne et ca fonctionne.
voila
;-)
J'ai 94 lignes.
La valeur de alea dans la ligne??? est ce le nombre que je demande comme tirage? car ca bugue à chaque chiffre.
Petite précision : faut-il absolument mettre des valeurs chiffrées dans la colonne A de ma liste?
car j'ai des M, MME et MLLe dans la colonne A.
La valeur de alea dans la ligne??? est ce le nombre que je demande comme tirage? car ca bugue à chaque chiffre.
Petite précision : faut-il absolument mettre des valeurs chiffrées dans la colonne A de ma liste?
car j'ai des M, MME et MLLe dans la colonne A.
ah bah vi ... c'est pour ça .... rajoute une colonne en A et met une numérotation ... ensuite modifie le code :
;o)
If j = 2 Then ws2.Range("A" & j).Value = ws1.Range("B" & alea).Value ws2.Range("B" & j).Value = ws1.Range("C" & alea).Value ws2.Range("C" & j).Value = ws1.Range("D" & alea).Value ws2.Range("D" & j).Value = ws1.Range("E" & alea).Value ws2.Range("E" & j).Value = ws1.Range("F" & alea).Value ws2.Range("F" & j).Value = ws1.Range("G" & alea).Value ws2.Range("G" & j).Value = ws1.Range("H" & alea).Value ws2.Range("H" & j).Value = ws1.Range("I" & alea).Value ws2.Range("I" & j).Value = ws1.Range("J" & alea).Value End If If doesExist(ws1.Range("A" & alea).Value) = False Then ws2.Range("A" & j).Value = ws1.Range("B" & alea).Value ws2.Range("B" & j).Value = ws1.Range("C" & alea).Value ws2.Range("C" & j).Value = ws1.Range("D" & alea).Value ws2.Range("D" & j).Value = ws1.Range("E" & alea).Value ws2.Range("E" & j).Value = ws1.Range("F" & alea).Value ws2.Range("F" & j).Value = ws1.Range("G" & alea).Value ws2.Range("G" & j).Value = ws1.Range("H" & alea).Value ws2.Range("H" & j).Value = ws1.Range("I" & alea).Value ws2.Range("I" & j).Value = ws1.Range("J" & alea).Value i = i + 1
;o)