alea

Le
Jacquouille
Bonjour,

J'ai reçu un fichier en pdf qui , en réalité, est un doc excel que je
voudrais travailler pour le comprendre.

Il s'agit de partager un demi terrain de foot (donc: 50m X 50m) en 2500
cases de 1 m².

Ensuite, et c'est là ma question: comment puis-je attribuer à chaque case un
numéro allant de 1 à 2500, mais de façon aléatoire, de manière à ce qu'il
n'y aie aucune suite logique.
Ex: le 1, 25,2000,789, .. tout cela dans un carré de 50 cases X 50.

Alea jacta est !

Merci pour vos bonnes explications.

Au fait, existe-t-il un programme fiable pour transformer un pdf et revenir
en excel ?

Merci et bonne journée.
Jacques.

Jacquouille

" Le vin est au repas ce que le parfum est à la femme."



L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
http://www.avast.com
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 5
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
DanielCo
Le #26341175
Bonjour,
Pour ce qui est de revenir de pdf à Excel, je ne sais pas.
Pour une numérotation aléatoire :
1. en colonnes A et B, mets des nombres de 1 à 2500 des valeurs, pas
des formules).
2. En colonne C, mets en C1 : =ALEA() et recopie jusqu'à C2500.
3. Trie les colonnes B et C sur la colonne C
En regard des cellules de la colonne A, tu as une valeur aléatoire
unique comprise entre 1 et 2500.
Cordialement.
Daniel


Bonjour,

J'ai reçu un fichier en pdf qui , en réalité, est un doc excel que je
voudrais travailler pour le comprendre.

Il s'agit de partager un demi terrain de foot (donc: 50m X 50m) en 2500
cases de 1 m².

Ensuite, et c'est là ma question: comment puis-je attribuer à chaque case un
numéro allant de 1 à 2500, mais de façon aléatoire, de manière à ce qu'il n'y
aie aucune suite logique.
Ex: le 1, 25,2000,789, ..... tout cela dans un carré de 50 cases X 50.

Alea jacta est !

Merci pour vos bonnes explications.

Au fait, existe-t-il un programme fiable pour transformer un pdf et revenir
en excel ?

Merci et bonne journée.
Jacques.

Jacquouille

" Le vin est au repas ce que le parfum est à la femme."


---
L'absence de virus dans ce courrier électronique a été vérifiée par le
logiciel antivirus Avast.
http://www.avast.com
JièL
Le #26341178
Hello

Le 27/02/2015 12:18, DanielCo a écrit :
Bonjour,
Pour ce qui est de revenir de pdf à Excel, je ne sais pas.



En général c'est galère.
Le PDF est un format qui a l'origine n'est pas fait pour être modifié
mais UNIQUEMENT pour être imprimé avec le même rendu quelque soit
l'environnement, donc la récup dans Excel... bien du plaisir.

Jaques, essaye un copier/coller, ou un enregistrement en texte brut,
mais tu auras toujours une remise en forme à faire. Quand à lui redonner
la même forme en le remettant en PDF... bien deu plaisir aussi ;-)

Pour une numérotation aléatoire :
1. en colonnes A et B, mets des nombres de 1 à 2500 des valeurs, pas des
formules).
2. En colonne C, mets en C1 : =ALEA() et recopie jusqu'à C2500.
3. Trie les colonnes B et C sur la colonne C
En regard des cellules de la colonne A, tu as une valeur aléatoire
unique comprise entre 1 et 2500.
Cordialement.



Jolie astuce, c'est quand même bien plus simple que de faire un VBA qui
regarde si le nombre est déjà utilisé.

Bravo.

--
JièL admi-ratif
Jacquouille
Le #26341185
OK, les gars. Merci
Puisque nous frôlons l'impossible pour passer de PDF à Excel, recommençons
le boulot.
Merci et bon futur WE
Jacques.


Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
"JièL" a écrit dans le message de groupe de discussion :
mcpl94$sov$

Hello

Le 27/02/2015 12:18, DanielCo a écrit :
Bonjour,
Pour ce qui est de revenir de pdf à Excel, je ne sais pas.



En général c'est galère.
Le PDF est un format qui a l'origine n'est pas fait pour être modifié
mais UNIQUEMENT pour être imprimé avec le même rendu quelque soit
l'environnement, donc la récup dans Excel... bien du plaisir.

Jaques, essaye un copier/coller, ou un enregistrement en texte brut,
mais tu auras toujours une remise en forme à faire. Quand à lui redonner
la même forme en le remettant en PDF... bien deu plaisir aussi ;-)

Pour une numérotation aléatoire :
1. en colonnes A et B, mets des nombres de 1 à 2500 des valeurs, pas des
formules).
2. En colonne C, mets en C1 : =ALEA() et recopie jusqu'à C2500.
3. Trie les colonnes B et C sur la colonne C
En regard des cellules de la colonne A, tu as une valeur aléatoire
unique comprise entre 1 et 2500.
Cordialement.



Jolie astuce, c'est quand même bien plus simple que de faire un VBA qui
regarde si le nombre est déjà utilisé.

Bravo.

--
JièL admi-ratif


---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
http://www.avast.com
Jacquouille
Le #26341184
Au fait, existe-t-il une commande pour arrêter une macro ?
Je suis dans une boucle (for n=1 to 2500) depuis 10 minutes ....
Merci
Jacques.


Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
"JièL" a écrit dans le message de groupe de discussion :
mcpl94$sov$

Hello

Le 27/02/2015 12:18, DanielCo a écrit :
Bonjour,
Pour ce qui est de revenir de pdf à Excel, je ne sais pas.



En général c'est galère.
Le PDF est un format qui a l'origine n'est pas fait pour être modifié
mais UNIQUEMENT pour être imprimé avec le même rendu quelque soit
l'environnement, donc la récup dans Excel... bien du plaisir.

Jaques, essaye un copier/coller, ou un enregistrement en texte brut,
mais tu auras toujours une remise en forme à faire. Quand à lui redonner
la même forme en le remettant en PDF... bien deu plaisir aussi ;-)

Pour une numérotation aléatoire :
1. en colonnes A et B, mets des nombres de 1 à 2500 des valeurs, pas des
formules).
2. En colonne C, mets en C1 : =ALEA() et recopie jusqu'à C2500.
3. Trie les colonnes B et C sur la colonne C
En regard des cellules de la colonne A, tu as une valeur aléatoire
unique comprise entre 1 et 2500.
Cordialement.



Jolie astuce, c'est quand même bien plus simple que de faire un VBA qui
regarde si le nombre est déjà utilisé.

Bravo.

--
JièL admi-ratif


---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
http://www.avast.com
Jacky
Le #26341189
Hello,

Au fait, existe-t-il une commande pour arrêter une macro ?



Escape
ou plus fort....
"CTRL" + "Arrêt defil."

--
Salutations
JJ


"Jacquouille"
Je suis dans une boucle (for n=1 to 2500) depuis 10 minutes ....
Merci
Jacques.


Jacquouille
MichD
Le #26341196
Bonjour,

Cette macro créé un tableau de 50 lignes X 50 colonnes avec
un numéro unique de 1 à 2500.

Nom de l'onglet de la feuille à adapter.
Le tableau est de A1 à AX50

'-----------------------------------------------------------------------------------
Sub test()
Dim NbNumber As Long, i As Long, V As Long
Dim NbRow As Long, NbColumn As Long

'Nombre de numéros à sortir au hasard sans doublon
NbNumber = 2500

NbColumn = 1
NbRow = 1

Set Dic = CreateObject("Scripting.Dictionary")

Application.ScreenUpdating = False

'Nom de l'onglet de la feuille à adapter
With Worksheets("Feuil1")
Do
Randomize
V = Int((NbNumber) * Rnd + 1)
If Not Dic.Exists(V) Then
Dic.Add V, V
NbColumn = Dic.Count Mod 50
If NbColumn = 0 Then
NbColumn = 50
.Cells(NbRow, NbColumn) = V
NbRow = NbRow + 1
Else
.Cells(NbRow, NbColumn) = V
End If
End If
Loop Until Dic.Count >= NbNumber
End With
Application.ScreenUpdating = True
End Sub
'-----------------------------------------------------------------------------------
GL
Le #26341199
Le 27/02/2015 12:18, DanielCo a écrit :
Bonjour,
Pour ce qui est de revenir de pdf à Excel, je ne sais pas.
Pour une numérotation aléatoire :
1. en colonnes A et B, mets des nombres de 1 à 2500 des valeurs, pas des
formules).
2. En colonne C, mets en C1 : =ALEA() et recopie jusqu'à C2500.
3. Trie les colonnes B et C sur la colonne C
En regard des cellules de la colonne A, tu as une valeur aléatoire
unique comprise entre 1 et 2500.
Cordialement.
Daniel



Bravo. Du coup on peut aussi faire :
A B
=ALEA() =EQUIV(PETITE.VALEUR($A$1:$A$2500;LIGNE());$A$1:$A$2500;0)
... <recopier vers le bas>
...

Mais c'est dommage que EQUATION.RANG ne permette pas de conserver
le rang en cas de doublons.
GL
Le #26341198
Le 27/02/2015 14:46, GL a écrit :
Le 27/02/2015 12:18, DanielCo a écrit :
Bonjour,
Pour ce qui est de revenir de pdf à Excel, je ne sais pas.
Pour une numérotation aléatoire :
1. en colonnes A et B, mets des nombres de 1 à 2500 des valeurs, pas des
formules).
2. En colonne C, mets en C1 : =ALEA() et recopie jusqu'à C2500.
3. Trie les colonnes B et C sur la colonne C
En regard des cellules de la colonne A, tu as une valeur aléatoire
unique comprise entre 1 et 2500.
Cordialement.
Daniel



Bravo. Du coup on peut aussi faire :
A B
=ALEA() =EQUIV(PETITE.VALEUR($A$1:$A$2500;LIGNE());$A$1:$A$2500;0)
... <recopier vers le bas>
...



heu non pardon j'mai gourré : EQUIV ne permet pas non plus de tenir
compte des doublons...


Mais c'est dommage que EQUATION.RANG ne permette pas de conserver
le rang en cas de doublons.
GL
Le #26341201
Le 27/02/2015 12:18, DanielCo a écrit :
Bonjour,
Pour ce qui est de revenir de pdf à Excel, je ne sais pas.
Pour une numérotation aléatoire :
1. en colonnes A et B, mets des nombres de 1 à 2500 des valeurs, pas des
formules).
2. En colonne C, mets en C1 : =ALEA() et recopie jusqu'à C2500.
3. Trie les colonnes B et C sur la colonne C
En regard des cellules de la colonne A, tu as une valeur aléatoire
unique comprise entre 1 et 2500.
Cordialement.
Daniel



Finalement on peut faire :

A B
=ALEA() =EQUATION.RANG(A1;$A$1:$A$2500;1)+NB.SI($A$1:A1;A1)-1
... <recopier vers le bas>

Mais y'a-t-il plus simple ?

Cordialement.
MichD
Le #26341202
Au besoin, si tu désires que la plage de cellules A1:AX50 soit de même
dimension,
(dans mon exemple 20 mm X 20 mm), tu peux faire comme ceci. Les numéros
s'insèrent dans chacune des cellules.

'-----------------------------------------------------------------------------------
Sub test()
Dim NbNumber As Long, i As Long, V As Long
Dim NbRow As Long, NbColumn As Long

'Nombre de numéros à sortir au hasard sans doublon
NbNumber = 2500

NbColumn = 1
NbRow = 1

Set Dic = CreateObject("Scripting.Dictionary")

Application.ScreenUpdating = False

'Nom de l'onglet de la feuille à adapter
With Worksheets("Feuil1")
With .Range("A1:AX50")
.ColumnWidth = SetColumnWidth(20)
.RowHeight = Columns(1).Width
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
End With

Do
Randomize
V = Int((NbNumber) * Rnd + 1)
If Not Dic.Exists(V) Then
Dic.Add V, V
NbColumn = Dic.Count Mod 50
If NbColumn = 0 Then
NbColumn = 50
.Cells(NbRow, NbColumn) = V
NbRow = NbRow + 1
Else
.Cells(NbRow, NbColumn) = V
End If
End If
Loop Until Dic.Count >= NbNumber
End With
Application.ScreenUpdating = True
End Sub
'-----------------------------------------------------------------------------------

Function SetColumnWidth(MM As Integer) As Double
Dim lr As Single

Application.ScreenUpdating = False
lr = Application.CentimetersToPoints(MM / 10)
While Columns(1).Width > lr
Columns(1).ColumnWidth = Columns(1).ColumnWidth - 0.1
Wend
While Columns(1).Width < lr
Columns(1).ColumnWidth = Columns(1).ColumnWidth + 0.1
Wend
SetColumnWidth = Columns(1).ColumnWidth
End Function
'-----------------------------------------------------------------------------------
Publicité
Poster une réponse
Anonyme