Mes formule passe en REF!#


#1

Bonjour a tous(tes)
C’est mon premier sujet sur ce forum

Voila mon problème dans un classeur j’ais deux Feuilles une “PRONO” et l’autre “Sélection”

Dans la Feuille “PRONO” est une page que je récupère sur le net tous les jours donc qui change tout le temps

Et dans l’autre Feuille “Sélection” j’ais créé un tableau qui me récupère certaine cellule de la Feuille “PRONO”

Mais comme la Feuille “PRONO” change tous les jours mes formule se mettent en “REF!#” et je suis obliger

de tous réécrire

EX: je vais chercher dans la Feuille “PRONO” une cellule avec comme formule dans la Feuille “Sélection”

=SI($A$15>1;PETITE.VALEUR(PRONO!E287:E298;4);"") le lendemain c’la devient

=SI($A$15>1;PETITE.VALEUR(PRONO!REF!#;4);"")

Voila pour l’instant car il y a d’autre problème en espérant avoir été asse clair

Cordialement
kiss6


#2

Bonjour,

Place un petit classeur avec deux ou trois exemples pour voir le soucis :wink:


#3

Bonjour Mimimathy

Je vous remercie de vous pencher sur mon problème

je vous met donc un fichier test vous verrez que j’ais essayer plusieurs solution en VBA mais sans succès

essai Classeur1.xlsm (816,5 Ko)

Cordialement

kiss6


#4

Re,

Petite précision:

La course sur laquelle tu t’intéresse se nomme toujours R1-C5 ou autres ?
Le site de ton téléchargement pour voir la conception du fichier d’import


#5

Re,
Non elle ne se porte pas simplement sur une seule course mais sur toute les courses de la Feuille “PRONO”

j’avais pensé a aller chercher les courses en sélectionnant la colonne B car en plus les tableaux des EX:R1-C1

qui ce trouve au-dessus de la cellule N° change tout les jours car il peut y avoir soit 8 partants 9,10,11,12,13

etc. le maximum est de 20 partants et toujours a des réunions différente


#6

Re,

J’avait bien ce code que j’ais récupérer sur le net mais il faudrait changer

tableau = (Array(30, 12, 49, 56, 37, 89, 53))

trouver autre chose

Sub tri()
Dim tableau()
Dim valeur_boucle&, i&, tempo_tableau&
tableau = (Array(30, 12, 49, 56, 37, 89, 53))
Do 'tri décroissant
valeur_boucle = 0
For i = 0 To UBound(tableau) - 1
If tableau(i) < tableau(i + 1) Then
tempo_tableau = tableau(i)
tableau(i) = tableau(i + 1)
tableau(i + 1) = tempo_tableau
valeur_boucle = 1
End If
Next i
Loop While valeur_boucle = 1
End Sub


#7

Re,

Ton tableau se présente toujours pareil
CàD le N° en jaune sur fond gris toujours en colonne B


#8

Re,

Oui la première course démarre toujours en B5 avec le N° en jaune sur fond gris c’est juste les tableau des

courses qui change suivant le nombre de partants


#9

Re,

Ok, je suis dessus :wink:


#10

J’ ais trouvé ce bout de code qui fonctionne mieux mais il me met 0 en E6 et en plus la boucle n’est pas

bonne puisque le tableau des courses change constamment

mais au moins c’la vous donne un aperçue j’ais oublier de vous dire que je me sert de la Feuil4 pour les

essaies après j’adapterait

Sub recherche()
Dim a As Integer
a = a
For i = 0 To 7
Sheets(“PRONO”).Select
If Range(“E6” & i).Value > a Then 'par exemple tu veux tester la colonne E
a = Range(“E6” & i).Value
End If
a=a+1
Next i
Sheets(“Feuil4”).Select
Range(“E6”).Value = a ’ tu écris le résultat de la recherche dans E6
End Sub

cordialement

kiss6


#11

Re,

A tester
Les résultats sont sur la feuille 1 (à modifier dans la macro pour une autre feuille)
La macro se lance depuis le bouton en feuille PRONO (Le tien)

Sub test()
Dim F1 As Range, F2 As Range
Dim i%, Dl%, Dl1%
Dl = 2
Set F1 = Sheets("PRONO").Range("B1:B2000") 'Initialise la feuille PRONO
Set F2 = Sheets("Feuil1").Range("A2:A" & Dl) 'Initialise la feuille destination (à modifier)
Sheets("Feuil1").Range("a3:j2000").ClearContents 'Efface les valeurs feuill1
    For i = 1 To F1.Rows.Count 'boucle sur la colonne B feuille PRONO
      If F1(i, 1).Value = "N°" Then 'condition si trouve la valeur N°
        F2(Dl, 1).Value = Left(F1(i - 1, 1).Value, 5) 'Récupère les 5 premiers caractères (courses)
        F1(i, 1).Select
        Dl1 = Range(Selection, Selection.End(xlDown)).Count - 1 'Compte le Nb de ligne jusqu'à prochaine ligne vide
        F2(Dl, 2).Value = Dl1 ' Cela donne le NB de Chevaux en course
        If Dl1 > 1 Then 'Condition reprenant tes formules de petite valeur de ton onglet selection
          F2(Dl, 3).Value = Application.WorksheetFunction.Small(Range(F1(i + 1, 4), F1(i + Dl1, 4)), 4)
        End If
          F2(Dl, 4).Value = Application.WorksheetFunction.Index(Range(F1(i + 1, 1), F1(i + Dl1, 1)), Application.WorksheetFunction.Match(F2(Dl, 3).Value, Range(F1(i + 1, 4), F1(i + Dl1, 4)), 0))
        If Dl1 > 1 Then
          F2(Dl, 5).Value = Application.WorksheetFunction.Small(Range(F1(i + 1, 4), F1(i + Dl1, 4)), 3)
        End If
          F2(Dl, 6).Value = Application.WorksheetFunction.Index(Range(F1(i + 1, 1), F1(i + Dl1, 1)), Application.WorksheetFunction.Match(F2(Dl, 5).Value, Range(F1(i + 1, 4), F1(i + Dl1, 4)), 0))
        If Dl1 > 1 Then
          F2(Dl, 7).Value = Application.WorksheetFunction.Small(Range(F1(i + 1, 4), F1(i + Dl1, 4)), 2)
        End If
          F2(Dl, 8).Value = Application.WorksheetFunction.Index(Range(F1(i + 1, 1), F1(i + Dl1, 1)), Application.WorksheetFunction.Match(F2(Dl, 7).Value, Range(F1(i + 1, 4), F1(i + Dl1, 4)), 0))
        If Dl1 > 1 Then
          F2(Dl, 9).Value = Application.WorksheetFunction.Small(Range(F1(i + 1, 4), F1(i + Dl1, 4)), 1)
        End If
          F2(Dl, 10).Value = Application.WorksheetFunction.Index(Range(F1(i + 1, 1), F1(i + Dl1, 1)), Application.WorksheetFunction.Match(F2(Dl, 9).Value, Range(F1(i + 1, 4), F1(i + Dl1, 4)), 0))
                Dl = Dl + 1
      End If
    Next i
F1(1, 1).Select
End Sub

essai Classeur1.xlsm (810,4 Ko)


#12

Mimimathy

Ce n’est pas ce que je voulais mais je vais adapter ton travail qui plus es excellent a mon programme

je te remercie pour tous et j’espère vous retrouver bientôt car j’ais beaucoup de question au sujet

des courses hippique

En attendant je vous remercie car je cherchais depuis pas mal de temps sur le net quelque chose de similaire

mais en vain pourtant j’essais toujours de me débrouiller seul c’est rare que je demande de l’aide

je n’aime pas embêter les gens sur ceux encore merci

Cordialement

kiss6


#13

Bonjour Mimimathy

Excuser moi encore de vous déranger j’ais cliquer trop vite sur solution il fallait que j’attende le lendemain

car la page ne peut que ce charger a 10h00 ce que j’ais fais ce matin et lorsque je charge la nouvel

page mon bouton s’efface

donc j’ais essayer dans mettre un sur une autre feuille mais j’ais un message d’erreur “** 1004 la méthode **”

“**select de la classe range a échoué **”

et dans le code VBA la ligne en surbrillance jaune est " F1( i , 1 ) . select "

peut-être faudrait-il changer l’initialisation de la feuille “PRONO”

Cordialement

kiss6


#14

Bonjour,

Teste comme ceci.
Il faut simplement ajouter la ligne suivante avent la ligne en surbrillance jaune

SHEETS(“PRONO”).activate

pour activer la feuille en question

Ton bouton est sur la feuille1
essai Classeur1.xlsm (812,4 Ko)


#15

Re ,

Je vous remercie c’la fonctionne impeccable

Maintenant je voudrais vous poser une autre question qui concerne le même programme ou faut - il

que je fasse un autre post :face_with_raised_eyebrow:

Cordialement

kiss6


#16

Bonjour @kiss6,

Pour créer un nouveau post:

Cordialement.