Mise en forme de colonne après recherche d'une donnée dans une ligne

Bonjour à tous!

Je souhaite ajouter la fonction Find dans une macro (ou autre fonction si vous avez des idées)

Elle me permettrait de mettre en forme une colonne si l'intitulé de cette dernière correspond à la donnée recherchée.

En gros:

Si tu trouves la donnée "Date" ou "Date d'écriture" dans la ligne 1
(Autrement dit) Rechercher la donnée "Date" ou "Date d'écriture" dans la ligne 1

Alors convertir la colonne trouvée en date courte (Selection.NumberFormat = "m/d/yyyy") .

Je vous remercie par avance pour toutes vos propositions

Bobo

Bonjour,

exemple si la date à chercher est en B2 et qu'on veut mettre en forme la cellule qui la contient en ligne 1 ;

Sub DateCourte()
    Dim cell As Range
    For Each cell In Range("A1:Z1")
        If cell.Value = Range("B2") Then
            cell.NumberFormat = "m/d/yyyy"
        End If
    Next cell
End Sub

Helloooo!

Merci pour ton retour! ça va fortement me servir!

Après je pense m'être mal exprimé..

Le fond de ma problématique est que j'exporte plusieurs données d'un logiciel vers Excel. Des données qui malheureusement, sortent avec en ligne 1, des intitulés de colonnes et un ordre aléatoire à chaques exports (car selon les paramétrages perso des différents collaborateurs Bref..)

J'ai déjà commencé une macro qui mets en forme certaines données et cela peut importe l'ordre et leurs noms de colonnes.. Mais pas pour les dates! qui sont sont soit nommées "Date" ou "Date d'écriture".

Comment faire pour mettre en Date courte, ces colonnes de dates sachant qu'on ne sait pas d'avance ou elles vont être.. Mais on connaît leur nom...

Je me suis dis qu'il doit y avoir un programme qui va chercher en ligne 1 le nom "Date" ou "Date d'écriture" et qui peut convertir sa colonne s'il trouve..

Merci encore pour ta réponse

Ok, j'avais mal compris, je ne suis pas un fin connaisseur du VBA alors je me suis inspiré d'un autre code et ceci fonctionne pour la 1ère colonne nommée soit "Date" soit "Date d'écriture", donc à peaufiner si les 2 coexistent dans le même fichier ;

Sub DateCourte2()
    Dim head As Range
        Set head = Range("A1:Z1").Find(what:="Date*")
    If Not head Is Nothing Then
        Cells(1, head.Column).Resize(Cells(Rows.Count, head.Column).End(xlUp).Row).NumberFormat = "m/d/yyyy"
    End If
End Sub

Ça formate en date tout ce qu'il y a au-dessus de la dernière cellule remplie, donc y compris l'en-tête (mais ça ne se voit pas, le texte reste tel quel même formaté en date).

Un grand merci pour tout cela fonctionne parfaitement!

Rechercher des sujets similaires à "mise forme colonne recherche donnee ligne"