Runtime error 1004 en VBA ???? késako?

Xand

XLDnaute Nouveau
Salut à tous,

je viens d'écrire ce petit programme et je ne comprends pas pourquoi j'ai une erreur :(

alors; sur la feuille 'resultats j'ai une première ligne avec les en-têtes de lignes
la première colonne contient les dates, raison pour laquelle je commence plus loin à lire en 2e colonne...

Ce doit être une erreur stupide, comme toutes les erreurs, mais je ne comprends pas.


Merci d'avance pour votre aide que j'espère formidable :p

non, ne pas frapper :eek:

Sub statistiques_paires()

'table contenant le nombre des paires
Dim paire(42, 42) As Integer
' col1: compteur en colonne ran1: compteur en rangée
Dim col1, ran1 As Integer
'val1: valeur 1ere cellule, val2: valeur 2e cellule
Dim val1, val2 As Integer
Dim col2 As Integer
Dim lignelue, lignemax As Long


For col1 = 1 To 42
For ran1 = 1 To 42
paire(col1, ran1) = 0
If col1 = ran1 Then paire(col1, ran1) = -1
Next ran1
Next col1

Sheets('resultats').Select

lignemax = Application.Match(999, Sheets('resultats').Range('B:B')) ' on recherche le nombre total de tirages
lignelue = 2 'on commence à lire à la 2e ligne de la page 'resultats' la ligne 1 étant l'en-tête de colonnes

Do
For col1 = 2 To 6 'on prend la première case en colonne 2 et ainsi de suite
For col2 = col1 + 1 To 7 'on prend la 2e case en colonne3
paire(Sheets('resultats').Cells(col1, lignelue).Value, Sheets('resultats').Cells(col2, lignelue).Value) = paire(Sheets('resultats').Cells(col1, lignelue).Value, Sheets('resultats').Cells(col2, lignelue).Value) + 1 'on incrémente le nombre de tirage de la paire de 1
Next col2 'et on recommence
Next col1 'et on recommence encore et encore
lignelue = lignelue + 1 'on passe à la ligne suivante
Loop While lignelue < lignemax 'on lit tant que y'a à lire... :)

Sheets('stats').Select 'on ouvre la page 'stats'


For col1 = 1 To 42
For ran1 = 1 To 42
Cells(col1, ran1).Value = paire(col1, ran1) 'on écrit dans chaque cellule la valeur adéquate (nombre de fois que la paire est sortie)
Next ran1
Next col1

End Sub
 

Robert

XLDnaute Barbatruc
Repose en paix
Bonsoir Xand, bonsoir le forum,

C'est bien là... On a le code. Alors les illustres qui sont capables de déceler l'erreur à vue pourront te répondre illico. Mais les illampadaires qui ont besoins de tester, de voir quelle ligne provoque l'erreur, de tater... et bien il ne nous reste plus qu'à faire un tableau et y inventer des données sans avoir aucune idée de ce que l'on pourrait y mette. Alors je pense qu'un petit fichier avec quelques données réelles serait le bienvenu pour les flemmards comme moi...

Tiens, à vue, je te signale quand même une anomalie qui ne résout pas ton problème mais juste pour ta gouvernante... Quand tu déclares plusieurs variables dans la même ligne (Dim col1, ran1 As Integer, par exemple), il faut que tu déclares le type pour chaque variable, sinon VBA attribut le type Variant par défaut à la variable non renseignée (c'est celui qui occupe le plus d'espace mémoire malheureusement). Le correct dans l'exemple serait : Dim col1 As Integer, ran1 As Integer.
 

Xand

XLDnaute Nouveau
Robert, l'idiot que je suis a oublié de mettre le fichier avec :(

le voici
ptête que je suis nase au point de pointer vers qq chose de pas valable :(

je regarde et modifie selon tes idées émises ;)

merci :)

Message édité par: Xand, à: 15/12/2005 21:39
 

Xand

XLDnaute Nouveau
je retente :( :( [file name=resLotto1.zip size=36269]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/resLotto1.zip[/file]

Et ça a marché

Avis aux concepteurs géniaux de ce site (C'est utile de passer de la pommade en hiver :unsure: ?
Oui, pour les gercure :)

Bon, avis aux créateurs et admins du site:

Notez en grand que les fichiers compressés ne peuvent pas contenir de caractères spéciaux ni d'espace

Y'a un idiot sur le site, moi :woohoo:

bonne soirée ;)

Message édité par: Xand, à: 15/12/2005 22:00
 

Pièces jointes

  • resLotto1.zip
    35.4 KB · Affichages: 70
L

laM

Guest
Bonjour


Sub statistiques_paires() ...
...
paire(col1, ran1)
...

Sans avoir testé votre fichier cela ressemble à une procédure récursive, sauf qu'il me semble qu'il doit manquer un S à paire(col1, ran1) pour l'appel de la fonction, et la définition des paramètres a disparue :
Sub statistiques_paires(c as variant, r as variant) par exemple.

Serait-ce une piste pour la résolution du 1004 error ???

Au revoir, à bientôt
 

Ti_

Nous a quitté
Repose en paix
remplace ta ligne :

'lignemax = Application.Match('', Sheets('resultats').Range('B:B')) ' on recherche le nombre total de tirages

par celle-ci :

lignemax = Sheet1.Range('B65536').End(xlUp).Row

et ça devrait aller mieux

et dans la foulée remplace aussi :

Do
For col1 = 2 To 6
For col2 = (col1 + 1) To 7
paire(Sheets('resultats').Cells(col1, lignelue).Value, Sheets('resultats').Cells(col2, lignelue).Value) = _
paire(Sheets('resultats').Cells(col1, lignelue).Value, Sheets('resultats').Cells(col2, lignelue).Value) + 1
Next col2
Next col1
lignelue = lignelue + 1
Loop While lignelue < lignemax 'on lit tant que y'a à lire... :)


par :

Do
For col1 = 2 To 6
For col2 = (col1 + 1) To 7
val1 = Sheets('resultats').Cells(lignelue, col1).Value
val2 = Sheets('resultats').Cells(lignelue, col2).Value
paire(val1, val2) = paire(val1, val2) + 1
Next col2
Next col1
lignelue = lignelue + 1
Loop While lignelue < lignemax 'on lit tant que y'a à lire... :)

parce que tu confonds les lignes et les colonnes. Ceci dit, je ne sais pas trop ce que tu veux faire avec les lignes ci-dessus, mais cette programmation n'est pas très orthodoxe.
 

Xand

XLDnaute Nouveau
Salut_TI

Moi qui suis moi même athée, je ne suis pas orthodoxe ni bouddhiste mais boudeur ;)

Cette procédure est la base d'un programme qui devrait me permettre de faire des stats + poussées sur le lotto belge.

Le Tout Puissant étant contre les jeux de hasard, et le lotto en étant un, il est normal que la procédure ne soit ni catholique, ni orthodoxe.

Je vais tester vos conseils de ce pas et m'en retourner sur le chemin de ma quête du grand 6

merci à toutes les personnes qui m'ont conseillé ici. Je suis sûr que ce post ne restera pas sans suite.

Iam, merci pour la piste de la récursivité que tu m'as suggérée mais là je sais d'expérience que la récursivité n'est pas mon fort :(
 

Discussions similaires

Réponses
11
Affichages
286
Réponses
23
Affichages
1 K

Statistiques des forums

Discussions
312 198
Messages
2 086 132
Membres
103 127
dernier inscrit
willwebdesign