En VBA, Comment retourner la lettre de la colonne via recherche

Fermé
Yanndc Messages postés 6 Date d'inscription vendredi 15 février 2013 Statut Membre Dernière intervention 14 septembre 2016 - Modifié par Yanndc le 15/02/2013 à 14:37
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 - 15 févr. 2013 à 23:39
Bonjour,


J'ai une methode pour cacher/afficher des colonnes et rangée d'une feuille:


Da = Worksheets(1).Range("A2").Value
col = "E:" & Da 
Columns(col).EntireColumn.Hidden = _ 
    Not Columns(col).EntireColumn.Hidden 
Rows("2:2").EntireRow.Hidden = _ 
    Not Rows("2:2").EntireRow.Hidden 



Mon besoin est de remplacer la valeur de "Da" par la LETTRE de la colonne qui précède la collonne ou se trouve la date "2013-02-04" dans la rangée 3.

Merci d'avance pour votre aide.

Yann
A voir également:

6 réponses

ccm81 Messages postés 10853 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 avril 2024 2 404
15 févr. 2013 à 18:00
bonjour

essaies ceci

dim a as string, co as string
a = Range(ta_cellule).Address
co = Split(a, "$")(3)

bonne suite
0
Yanndc Messages postés 6 Date d'inscription vendredi 15 février 2013 Statut Membre Dernière intervention 14 septembre 2016
15 févr. 2013 à 19:25
Merci pour ton aide.

Si je comprends ton bien ton code, il manquerait de modifier "ta_cellule" pour etre capable de chercher dans quel cellule se retrouve ma date. Je sais pas faire ca non plus.

Si je comprends bien, ta formule extrait la lettre de la colonne pour une cellule donné.
0
ccm81 Messages postés 10853 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 avril 2024 2 404
Modifié par ccm81 le 15/02/2013 à 19:59
exact ou presque, j'ai fait une erreur dans l'utilisation de la fonction split

a = Range(ta_cellule).Address
récupère l'adresse sous la forme $B$13
co = Split(a, "$")(1)
renvoie "B"

dans quelle cellule se trouve ta date?
0
Yanndc Messages postés 6 Date d'inscription vendredi 15 février 2013 Statut Membre Dernière intervention 14 septembre 2016
15 févr. 2013 à 20:44
On ne sait pas. Il faut chercher a travers la rangée 3 pour la date "2013-02-04". La colonne que je cherche est celle qui précède cette dernière.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
15 févr. 2013 à 22:54
Bonjour,

Pour trouver la colonne qui précède la valeur "2013-02-04" en ligne 3, tu peux utiliser :
Dim da As String, dch As Double
    dch = DateValue("4/2/2013")
    da = Chr(Application.WorksheetFunction.Match(dch, Rows(3), 0) + 63)

si ta date est en colonne J "da" contiendra I
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
Modifié par eriiic le 15/02/2013 à 23:50
Bonsoir à tous,

Si ta colonne peut être > "Z" utilise plutôt :
Dim col As String, date1 As Date, c As Range  
date1 = DateValue("4/2/2013")  
Set c = Rows(3).Find(date1, LookIn:=xlValues)  
If c Is Nothing Then col = "non trouvé" Else col = Split(c.Offset(, -1).Address, "$")(1)


Mais tu n'es pas obligé de passer par les lettres. Ex :
date1 = DateValue("4/2/2013")  
Set c = Rows(3).Find(date1, LookIn:=xlValues)  
If Not c Is Nothing Then Columns(5).Resize(, c.Column - 5).Select 

eric


Jamais tu ne répondras à un mp non sollicité...
Bon, ça c'est fait.
0