Find sur cellules avec un format personnalisé
#1
Semi pro XLPages

Inscription: 12/06/2008
De Ile de France Sud

Messages: 145

Système d'exploitation:
PC
Version Excel utilisée:
2003 _ 2010
Posté le : 13-05-2010 09h57
 Bonjour à tous
Dans une ligne, j'ai, dans des cellules avec des formats personnalisés : "nb : xx" ou "xx fois", xx étant le résultat d'une formule
J'essaie ceci :

Sub essai_cherche_max()
 
For i = 1 To 2
    mavar = Application.Large(Sheets("Feuil1").Range("d5:iv5"), i)
   
    With Worksheets("Feuil1").Range("d5:iv5")
        Set c = .Find(mavar, LookIn:=xlValues, Lookat:=xlWhole)
       
        If Not c Is Nothing Then
            firstAddress = c.Address
            Do
                  monadresse = c.Address '????????
        'le traitement
                Set c = .FindNext(c)
            Loop While Not c Is Nothing And c.Address <> firstAddress
        End If
    End With
Next
End Sub

mais cela ne fonctionne pas
Merci d'avance pour le coup de main
Eric


Hors Ligne
Rapport   Haut 

Re: Find sur cellules avec un format personnalisé
#2
Webmestre

Inscription: 18/05/2006
De Saône-et-Loire (71)

Messages: 1539

Système d'exploitation:
PC
Version Excel utilisée:
97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365
Posté le : 13-05-2010 10h23
Bonjour Eric, le Forum,

Et si tu nous en disais un peu plus sur ce morceau de code Eric ? Je ne vais pas t'apprendre que "Ca ne fonctionne pas", ça ne veut pas dire grand chose...

Ca plante ? Si oui, à quel endroit et quel message d'erreur ? Si non, qu'est-ce qui ne fonctionne pas et quelle est la réponse attendue ?

Je n'ai pas tout compris pour ma part, peut être aussi qu'en joignant un petit fichier exemple, ça aiderait ?

En tout cas, à première vue, "Application.Large()" moi ça ne me dit rien et pour une recherche du maximum, peut-être que "Application.Max()" serait plus approprié ?

Cordialement,

Didier_mDF
Image redimensionnée
Le Webmaster

La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien
Hors Ligne
Rapport   Haut 

Re: Find sur cellules avec un format personnalisé
#3
Semi pro XLPages

Inscription: 12/06/2008
De Ile de France Sud

Messages: 145

Système d'exploitation:
PC
Version Excel utilisée:
2003 _ 2010
Posté le : 13-05-2010 11h01
Bonjour à tous
Bonjour MdF
Il est vrai que ce n'était peut-être pas très évident .....
Je recherche l'adresse de la cellule de valeur max, et suivante, dans la ligne qui se compose de cellules avec un (des) format personnalisé.
Dans le code fournit "c" est "Nothing" donc "monadresse=c.address" n'est pas traité.
Pour obtenir le maximum, j'avais opté pour "Application.Large()" car je cherche, avec la boucle "For", le "max" puis le "max-1", puis .... alors que "Application.MAx()" donne que le "max"
J'espère avoir été plus clair
Merci d'avance
Eric





Pièce jointe:
xls find_cel_avec_format_perso.xls   [ Taille: 26.00 Ko - Téléchargements: 449 ]
Hors Ligne
Rapport   Haut 

Re: Find sur cellules avec un format personnalisé
#4
Webmestre

Inscription: 18/05/2006
De Saône-et-Loire (71)

Messages: 1539

Système d'exploitation:
PC
Version Excel utilisée:
97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365
Posté le : 13-05-2010 12h40
Re,

Tu devrais pouvoir essayer avec ça :
Set c = .Find(mavar, LookIn:=xlValues, LookAt:=xlPart)
Petite astuce si tu ne sais pas ce qu'il convient d'utiliser comme argument dans LookIn ou LookAt :
  • tu sélectionnes ta lignes 5,
  • tu enclenches l'enregistrement d'une macro,
  • tu fais ensuite Menu / Rechercher (ou Ctrl F),
  • et tu fais manuellement une recherche sur une des valeurs (11 par exemple) en cochant et décochant les différentes options de la boîte de dialogue jusqu'à que tu obtiennes le résultat attendu.
  • au final, tu quittes la boîte de recherche, tu clos l'enregistrement de macro et tu observes le code VBA ainsi obtenu :
   Selection.Find(What:="11", After:=ActiveCell, LookIn:=xlValues, LookAt _
        :=xlPart
, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
        False, SearchFormat:=False).Activate
Ainsi, tu obtiens les bons arguments qui fonctionnent !

Je me permets d'ajouter aussi qu'un petit effort du côté des déclarations de variable et l'utilisation de Option Explicit n'est jamais un luxe...

Cordialement,

Didier_mDF
Image redimensionnée
Le Webmaster

La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien
Hors Ligne
Rapport   Haut 

Re: Find sur cellules avec un format personnalisé
#5
Semi pro XLPages

Inscription: 12/06/2008
De Ile de France Sud

Messages: 145

Système d'exploitation:
PC
Version Excel utilisée:
2003 _ 2010
Posté le : 13-05-2010 13h46
Re

Merci pour cette réponse ultra rapide, ainsi que pour l'astuce que je ne connaissais pas (sinon...)

Pour le "...Je me permets d'ajouter aussi qu'un petit effort du côté des déclarations de variable et l'utilisation de Option Explicit n'est jamais un luxe...   .... ", tu as raison,  mais ce que j'ai déposé était un extrait de mon code. Pour ma part le "Option Explicit" est systématique, et m'oblige donc à déclarer les variables, ce que je fais en tête de module et par ordre alphabétique.

Merci encore et bonne fin de journée

Eric

Hors Ligne
Rapport   Haut 

Re: Find sur cellules avec un format personnalisé
#6
Webmestre

Inscription: 18/05/2006
De Saône-et-Loire (71)

Messages: 1539

Système d'exploitation:
PC
Version Excel utilisée:
97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365
Posté le : 13-05-2010 14h01
Re

Citation :
Eric a écrit :
Pour le "...Je me permets d'ajouter aussi qu'un petit effort du côté des déclarations de variable et l'utilisation de Option Explicit n'est jamais un luxe...   .... ", tu as raison,  mais ce que j'ai déposé était un extrait de mon code. Pour ma part le "Option Explicit" est systématique, et m'oblige donc à déclarer les variables, ce que je fais en tête de module et par ordre alphabétique.

Dans ce cas, merci à toi de laisser les déclarations de tes variables à l'avenir, juste histoire de donner le bon exemple aux visiteurs débutants de ce forum.

Cordialement,


Didier_mDF
Image redimensionnée
Le Webmaster

La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien
Hors Ligne
Rapport   Haut 

Re: Find sur cellules avec un format personnalisé
#7
Semi pro XLPages

Inscription: 12/06/2008
De Ile de France Sud

Messages: 145

Système d'exploitation:
PC
Version Excel utilisée:
2003 _ 2010
Posté le : 17-05-2010 10h41
Re (avec un peu de retard)

En conclusion, voici le code complet (de ma demande) avec la déclaration des variables :

Option Explicit

Sub cherche_max_dans_ligne_5()

Dim c As Range
Dim firstAddress As String
Dim i As Integer
Dim mavar As Integer    'dans ce cas
Dim monadresse As String

mavar = Application.Max(Sheets("Feuil1").Range("d5:iv5"))

With Worksheets("Feuil1").Range("d5:iv5")
    Set c = .Find(mavar, LookIn:=xlValues, Lookat:=xlPart)
    If Not c Is Nothing Then
        firstAddress = c.Address
        Do
'********************** ce que je cherche
            monadresse = c.Address
            MsgBox monadresse
'**********************
            Set c = .FindNext(c)
        Loop While Not c Is Nothing And c.Address <> firstAddress
    End If
End With

End Sub

pour ceux que cela intéresse. A adapter.

Bonne journée à tous

Eric




Hors Ligne
Rapport   Haut 


Vous pouvez voir les sujets.
Vous ne pouvez pas débuter de nouveaux sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Qui consulte actuellement ce sujet ?   1 Utilisateur(s) anonymes