Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

alea

48 réponses
Avatar
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

10 réponses

1 2 3 4 5
Avatar
DanielCo
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
Avatar
JièL
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
Avatar
Jacquouille
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
Avatar
Jacquouille
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
Avatar
Jacky
Hello,

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



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

--
Salutations
JJ


"Jacquouille" a écrit dans le message de news: mcpom4$547$
Je suis dans une boucle (for n=1 to 2500) depuis 10 minutes ....
Merci
Jacques.


Jacquouille
Avatar
MichD
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
'-----------------------------------------------------------------------------------
Avatar
GL
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.
Avatar
GL
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.
Avatar
GL
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.
Avatar
MichD
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
'-----------------------------------------------------------------------------------
1 2 3 4 5