• Initiateur de la discussion Initiateur de la discussion JJ1
  • 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 !

J

JJ1

Guest
Bonjour à tous,

pour les VBAÏstes,

Comment faut-il procéder pour initialiser en début de code, une concaténation constante de 8 nombres de 1 à 10,
ex: 13527854

la macro génère des multiples séries concaténées en mémoire (pas en Feuil) de ce type.

Quand la série concaténée de 8 simulés = série permanente du début de code (correspondance un à un), => affichage du nombre de séries qui ont été nécessaires à cette égalité.

Je ne trouve pas la fonction VBA par F1 pour cette mémorisation.

Si le nombre de séries est acceptable, je rajouterais une fonction supp.

merci de votre aide
 
Re : Excel vba Calculs.

une concaténation constante de 8 "chiffres" de 0 à 9,
ex: 13527854

une fonction personnalisée ...🙄
VB:
Function huit_sur_10() As String
Application.Volatile ' ---------recalcul automatique
'------------------------------- mettre en commentaire sinon
Dim machaine As String
Dim x As Integer, i As Integer
machaine = "0123456789"
Randomize
For i = 1 To 30 ' <------mélange plus poussé
x = Int(Rnd() * 10)
machaine = x & Application.Substitute(machaine, CStr(x), "")
Next
huit_sur_10 = Left(machaine, 8)
End Function
 
Re : Excel vba Calculs.

Bonjour Modeste, le Forum

Peux-tu stp m'expliquer ton code? je n'arrive pas à trouver la solution pour me passer de données sur la feuille Excel?

le principe est de stocker 8 nombres (de 1 à 10 séparés par une virgule) ex: 1,3,10,4,10,7,9,9
et de générer des alea de 9 (un de plus) nombres du même type,
si les 8 premiers nombres sont identiques aux 8 premiers nombres stockés, la macro affiche la suite de 9 nombres trouvés en messagebox, sans calcul sur la Feuille (en mémoire).(ex ici 1,3,10,4,10,7,9,9 et le 9ème nombre)

Je pensais à Array ?

Merci
Bonne journée
 
Re : Excel vba Calculs.

Bonsour®

je pense que nous ne sommes pas sur la même longueur d'onde 🙄

- s'agit t'il de chiffres : 0 , 1, 2, 3, 4, 5, 6, 7, 8, 9
ou de nombres : un nombre est composé de plusieurs chiffres

- la série générée (8 éléments parmi 10) comporte-t-elle des doublons ?

- la fonction proposée précédemment génère une série de 8 chiffres sans doublons
chaque appel de la fonction peut alors servir à remplir un élément de l'array (x chaines de 8 caractères)

- une fonction différente sera nécessaire pour x séries composées de 8 nombres (x lignes 8 colonnes)
 
Re : Excel vba Calculs.

Re,
merci de ta réponse concernant ton code. Il s'agit bien de nombres avec possibilité de doublon de 1 à10 séparés par une virgule pour les identifier.
Comment dois-je remplir ce fameux Array pour comparer la série initiale saisie en dur avec celle (à 9 nombres) créée par l'aléa sans écrire sur la feuille et c'est là mon souci.

merci de ta réponse quand tu auras un moment.

a+

ps: puisque je ne fais que des calculs en mémoire et juste un affichage final, puis-je utiliser vba sans ouvrir excel ?
 
Re : Excel vba Calculs.

Bonjour JJ1
Salut Modeste

Un essai (NB: je l'ai testé mais j'ai perdu patience !!)
Je manque de temps pour faire des tests avec des séries moins grandes

Code:
Sub test()
x = Array(1, 3, 10, 4, 10, 7, 9, 9)
y = Join(x, ",")
While Z = False
  zz = huit_dans_alea_9
  Z = (y = zz)
  cpte = cpte + 1
Wend
MsgBox (cpte)
End Sub
Function huit_dans_alea_9()
Randomize
For n = 1 To 9
  xx = Int(10 * Rnd + 1)
  x = x & xx & ","
Next
Z = Left(x, Len(x) - 1)
r = InStrRev(Z, ",")
huit_dans_alea_9 = Left(x, r - 1)
End Function
 
Dernière édition:
Re : Excel vba Calculs.

Bonjour Pierre Jean
Merci pour ta solution, le message m'indique le nombre de tirages mais pas la série trouvée de 9 nombres contenant les 8 constants.
J'ai mis ton code dans le fichier joint avec un test avec seulement 2 constantes et 3 nombres en alea.

Merci
Quand tu auras un moment.
Bon am
 

Pièces jointes

- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.
Retour