Forums XLPages

Tous les messages (Marco57)

Re: Création calendrier userform par macro
#1
Débutant XLPages

Inscription: 16/03/2008

Messages: 6

Posté le : 02-07-2008 16h39
Bonjour MDF, Lannou et le Forum,

Il suffit de placer ce code dans le module de code du formulaire :

Option Explicit
Private Sub Calendar1_DblClick()
  ActiveCell = Calendar1.Value 'renvoie la date s?ctionn?dans la cellule active
  Unload Me 'fait dispara?e le formulaire
End Sub

Private Sub UserForm_Initialize()
  Calendar1.Value = Date 's?ctionne la date du jour ?'initialisation du calendrier
End Sub
 
Après quoi, un double clic sur la date choisie et elle s'insèrera dans la cellule active

A+

Marco
Hors Ligne
Rapport   Haut 

Re: Analyse combinatoire
#2
Débutant XLPages

Inscription: 16/03/2008

Messages: 6

Posté le : 01-07-2008 22h35
Re bonsoir le Fil,
Merci Mytå pour ce fichier, y a pas photo, ça c'est du boulot de pro comparé à ma bidouille.
Pour moi, c'était ma première approche des permutations. Je ne connaissais même pas la fonction.
Ti et le Forum Veriti m'ont appris tout ce que je sais (et c'est encore bien peu) en VBA. J'avoue que je ne comprends pas l'algorithme mais quelle rapidité. C'est génial.
Merci pour ce super fichier.
@+
Marco57
Hors Ligne
Rapport   Haut 

Re: Analyse combinatoire
#3
Débutant XLPages

Inscription: 16/03/2008

Messages: 6

Posté le : 01-07-2008 19h48
Bonsoir le Fil et le Forum,

Si j'ai bien compris le souhait de Lotus27 était de trouver la chaîne de 6 lettres correspondant à un numéro d'ordre compris entre 1 et les 165 765 600 possibilités et ou l'inverse.

Je te propose une fonction personnalisée qui trouvera la correspondance d'une chaîne comme celle d'un chiffre. Un contrôle automatique de la chaîne vérifie le nombre de lettres, l'absence de lettres en doublon et les majuscules. Si c'est un chiffre, il doit être compris entre 0 et 165765600.

Si les premières combinaisons sont trouvées rapidement, il n'en est pas de même pour les dernères qui peuvent mettre plusieurs minutes et même heures sur des machines poussives.

Le fichier joint sera plus explicit.

@+

Marco57



Pièce jointe:
zip Combinaisons Lotus27-V3.zip   [ Taille: 17.37 Ko - Téléchargements: 772 ]
Hors Ligne
Rapport   Haut 

Re: Analyse combinatoire
#4
Débutant XLPages

Inscription: 16/03/2008

Messages: 6

Posté le : 30-06-2008 19h03

Bonsoir Mytå et toi le Forum,

Je crains de t'avoir choqué en mettant ce code car il est très proche du tien et en plus pour une fois, je l'ai signé.

Comme je le disais hier, cette question me remémorait une histoire de Loto National.
 
En fait c'était ICI

C'est vieux de près de deux ans et je puis t'assurer que ce code est de moi.

Je suis d'ailleurs quelque peu flatté d'avoir écrit le même code que toi et j'espère que pour une rare intervention de ma part sur votre Forum, ma bonne foi ne sera pas mise en doute.

Très cordialement

Marco57 







Hors Ligne
Rapport   Haut 

Re: Analyse combinatoire
#5
Débutant XLPages

Inscription: 16/03/2008

Messages: 6

Posté le : 29-06-2008 15h42
Bonjour le fil et toi le Forum,
De passage parmi vous, ce fil m'a remémoré une histoire de combinaisons possibles du Loto.
Il semble que Lotus27 cherchait à créer les différentes combinaisons possibles.
Citation :
D'autre part serait-il possible de créer dans une autre feuille la liste des arrangements lettres et valeurs obtenus

a mon avis une seule feuille (excel2002) ne suffit pas car le nombre de combinaisons doit être énorme.
La macro suivante génère ces différentes possibilités mais les ressources de ma machine (un peu vieille) font que je suis tombé en manque de ressources après avoir écrit 2 023 703 combinaisons. C'est peu quand on sait que cette combinaison est constituée de AIYMHU. A la louche, je dirai qu'on va dépasser les 50 millions de combinaisons.
En attendant d'avoir une machine mieux sourcée, je vous joins le code utilisé pour générer ces combinaisons:
Sub Combinaisons()
'by Marco57 28/06/08
Dim Num1 As Byte, Num2 As Byte, Num3 As Byte, Num4 As Byte, Num5 As Byte, Num6 As Byte
Dim L&, N&, C As Byte, Alpha As Variant, T#
  
  Alpha = Array("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", _
                "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z")

  T = Timer
  L = 1
  C = 0
'  
Application.ScreenUpdating False
  
For Num1 0 To UBound(Alpha)
    For 
Num2 0 To UBound(Alpha)
      For 
Num3 0 To UBound(Alpha)
        For 
Num4 0 To UBound(Alpha)
          For 
Num5 0 To UBound(Alpha)
            For 
Num6 0 To UBound(Alpha)
              If 
Not (Num1 Num2 Or Num1 Num3 Or Num1 Num4 Or Num1 Num5 Or Num1 Num6 Or _
                      Num2 
Num3 Or Num2 Num4 Or Num2 Num5 Or Num2 Num6 Or _
                      Num3 
Num4 Or Num3 Num5 Or Num3 Num6 Or _
                      Num4 
Num5 Or Num4 Num6 Or Num5 Num6Then
                L 
11
                
If 65002 Then
                  C 
22:  ActiveCell.Offset(02).Select
                End 
If
                
Cells(LC) = Alpha(Num1) & Alpha(Num2) & Alpha(Num3) & Alpha(Num4) & Alpha(Num5_
                                  
Alpha(Num6)
                
Cells(LC) = N
              End 
If
            
Next Num6
          Next Num5
        Next Num4
      Next Num3
    Next Num2
  Next Num1
  
  MsgBox Format
((65000 C) + L"#,##0") & " Combinaisons calculées en " Format(Timer T"0.00") & " secondes."
  
End Sub


Pour l'instant tout est sur la même feuille mais en plusieurs colonnes. Le changement de feuille éventuellement nécessaire n'est pas très complexe mais je vais d'abord tenter de trouver une machine capable de mémoriser tout cela.

A+

Marco57
Hors Ligne
Rapport   Haut 

Re: Samouraï & Sudoku par Itération (téléchargement)
#6
Débutant XLPages

Inscription: 16/03/2008

Messages: 6

Posté le : 16-03-2008 13h16
Bonjour le Site, le Forum, le Fil

Que dire d'autre que :

BRAVO, c'est du très grand art dans la maîtrise de la formule excel.

Je suis très admiratif.

Un grand Merci aussi à Jean-Marie qui nous a fait connaître ce chef-d'oeuvre sur Veriti.

A+

Marco
Hors Ligne
Rapport   Haut