pb .find + format date verticale

fourmi4x

XLDnaute Junior
Bonjour,

j'ai un problème avec la fonction .find que je pensais maitrîser...mais Excel est plus coriace que ça. Elle marche dans un cas mais pas dans l'autre et le seul delta est la taille de la cellule.

S'agit-il d'un bug excel ?

Ci-joint un mini-fichier d'illustration.

Merci bcp à ceux qui pourront m'aider, ça me semble étrange comme histoire... :)

Cdt,
Xavier
 

Pièces jointes

  • pb find + date verticale.xls
    32 KB · Affichages: 85

Spitnolan08

XLDnaute Barbatruc
Re : pb .find + format date verticale

Bonjour,

Je n'ai pas vraiment compris ce que tu veux faire et ce qui ne marche pas...
Chez moi, c'est la case la plus grande qui est considérée par ta macro et "soulignée" en rouge.
Tu veux trouver et souligner toutes les case correspondant au critère de recherche ?

Cordialement
 

fourmi4x

XLDnaute Junior
Re : pb .find + format date verticale

Bonjour, merci de te pencher sur mon cas.

Oui, la macro est sensée colorier toutes les cases du dessous en rouge dès qu'elle trouve la date.

Or elle ne le fait pas si la largeur de colonne est trop petite (on dirait que c'est lorsqu'elle est est trop petite pour pourvoir rentrer la date dans le sens horizontal).

Xavier
 

Spitnolan08

XLDnaute Barbatruc
Re : pb .find + format date verticale

Re,

Je pensais que tu avais oublié une boucle mais ça ne change rien...
Effectivement, en dessous d'une certaine largeur de cellule, Find ne trouve plus la date :confused:
J'ai également testé en enlevant toutes les fioritures dans ta fonction Find mais rien n'y fait.
Désolé, je ne vois pas.

Bizarre, bizarre...
Cordialement
 

Épaf

XLDnaute Occasionnel
Re : pb .find + format date verticale

Re,

Je pensais que tu avais oublié une boucle mais ça ne change rien...
Effectivement, en dessous d'une certaine largeur de cellule, Find ne trouve plus la date :confused:
J'ai également testé en enlevant toutes les fioritures dans ta fonction Find mais rien n'y fait.
Désolé, je ne vois pas.

Bizarre, bizarre...
Cordialement
+1
J'ai aussi pensé à une question de format dans la saisie de la date (non dans le format de cellule qui peut afficher le même format même si la saisie est dans un format différent) mais c'est pas ça
Alors, en désespoir de cause, j'ai fait ça
Code:
Sub Update_IUA()

'----    Déclaration des variables
Dim col As Integer
Dim day As Variant
Dim the_day As Double
Dim finded_day As Range

    Sheets("IUA").Columns("E:J").ColumnWidth = 25
    Sheets("IUA").Range("5:5").NumberFormat = "0"

    DoEvents
    col = 5
'----    Lancement de la boucle
    For i = 4 To 300

        day = Sheets("All Data").Cells(i, col).Value
        If Not (day = "" Or day = "?") Then
            the_day = CDbl(CDate(day))
            Sheets("IUA").Range("A5").Select
            With Sheets("IUA").Range("A5:Z5")
                Set finded_day = .Find(the_day, SearchDirection:=xlNext)
                If Not finded_day Is Nothing Then
                
                    firstAddress = finded_day.Address
                    Do
                        finded_day.Interior.ColorIndex = 3
                        DoEvents
                        Set finded_day = .FindNext(finded_day)
                    Loop While Not finded_day Is Nothing And finded_day.Address <> firstAddress
                  
                End If
            End With
        End If
    Next i
    Sheets("IUA").Columns("E:J").EntireColumn.AutoFit
    Sheets("IUA").Range("5:5").NumberFormat = "dd/mm/yyyy"
    
End Sub
Un "bricollage" qui fonctionne mais bon, si quelqu'un a une solution plus mieux sioux...
@+
 

fourmi4x

XLDnaute Junior
Re : pb .find + format date verticale

Ouch. C'est tout sauf un bricolage, c'est un cours de VBA :)
En tout cas ça répond parfaitement à mon besoin.

Merci beaucoup Spitnolan08, et Epaf pour ton aide précieuse.

(Ca ressemblait à un bug quand même non... ? :cool: )

Xavier
 

pierrejean

XLDnaute Barbatruc
Re : pb .find + format date verticale

bonsoir à tous

@fourmi4x

Effectivement cela ressemble énormement à un bug !!!

une solution sans find

Code:
Sub test()
For Each cel In Sheets("All Data").Range("E5:E" & Sheets("All Data").Range("E65536").End(xlUp).Row)
  For Each cl In Sheets("IUA").Range(Cells(5, 5), Cells(5, Sheets("IUA").Range("IV5").End(xlToLeft).column))
    If cl.Value = cel.Value Then cl.Interior.ColorIndex = 3
  Next cl
Next cel
End Sub
 

Discussions similaires

Réponses
3
Affichages
859

Statistiques des forums

Discussions
312 685
Messages
2 090 931
Membres
104 703
dernier inscrit
romla937