VB Excel : Recherche pour atteindre une cellule
Bart59000
Messages postés
3
Statut
Membre
-
jordane45 Messages postés 30426 Date d'inscription Statut Modérateur Dernière intervention -
jordane45 Messages postés 30426 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
Pourriez-vous m'indiquer la marche à suivre pour faire une macro VB sur Excel :
Dans une plage de données CK3:ZZ3 j'ai les dates du calendrier
L'idée serait de trouver la date du jour dans cette plage (plage sur Feuil1) puis d'aller au croisement avec la ligne 50.
Du coup si date du jour : CZ3 --> Pointer la cellule CZ50.
J'ai essayer de m'en sortir avec diverses réponses sur les forums mais je bloque.
Merci par avance.
Pourriez-vous m'indiquer la marche à suivre pour faire une macro VB sur Excel :
Dans une plage de données CK3:ZZ3 j'ai les dates du calendrier
L'idée serait de trouver la date du jour dans cette plage (plage sur Feuil1) puis d'aller au croisement avec la ligne 50.
Du coup si date du jour : CZ3 --> Pointer la cellule CZ50.
J'ai essayer de m'en sortir avec diverses réponses sur les forums mais je bloque.
Merci par avance.
Configuration: Windows / Chrome 81.0.4044.122
3 réponses
-
Bonjour,
Plusieurs possibilités, comme par exemple faire des boucles ..
Mais je préfère de loin la méthode find FIND :https://forums.commentcamarche.net/forum/affich-37621992-methode-find-dans-vba-recherche-de-donnees-sous-excel
-
Merci Jordane.
Bon je suis un total beginner ds le VB.
Du coup pour commencer j'ai rechercher déjà la date ds une ligne mais rien à faire il ne la trouve pas.
Si tu as des pistes sur le pourquoi?Sub Cherche() 'déclaration des variables : Dim Trouve As Range, PlageDeRecherche As Range Dim Valeur_Cherchee As String, AdresseTrouvee As String Valeur_Cherchee = Date Set PlageDeRecherche = ActiveSheet.Rows(3) Set Trouve = PlageDeRecherche.Cells.Find(what:=Valeur_Cherchee) If Trouve Is Nothing Then AdresseTrouvee = Valeur_Cherchee & " n'est pas présent dans " & PlageDeRecherche.Address Else AdresseTrouvee = Trouve.Address End If MsgBox AdresseTrouvee Set PlageDeRecherche = Nothing Set Trouve = Nothing End Sub
EDIT : Ajout des balises de code
-
-
Sub Cherche() 'déclaration des variables : Dim Trouve As Range, PlageDeRecherche As Range Dim Valeur_Cherchee As Date, AdresseTrouvee As String Valeur_Cherchee = CDate(Date) Set PlageDeRecherche = ActiveSheet.Rows(3) Set Trouve = PlageDeRecherche.Cells.Find(What:=Valeur_Cherchee, Lookat:=xlPart, LookIn:=xlValues) If Trouve Is Nothing Then AdresseTrouvee = Valeur_Cherchee & " n'est pas présent dans " & PlageDeRecherche.Address Else AdresseTrouvee = Trouve.Address End If MsgBox AdresseTrouvee Set PlageDeRecherche = Nothing Set Trouve = Nothing End Sub
PS: A l'avenir, merci d'utiliser les balises de code pour poster ton code sur le forum
Explications disponibles ici : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
-
Merci Jordane,
C'est noté pour les balises je ne connaissais pas.
Le système me renvoi encore le message avec le code modifié (Voir imprime ecran)
Ensuite j'essaye de voir quelle méthode pour pouvoir sélectionner la colonne du résultat ci dessus (quand j'arriverai à le faire fonctionner) et décaler de 10 lignes en dessous.-
Les cellules qui contiennent les dates dans ton classeur... sont bien au format date ??
Pourrais tu nous partager ton classeur ?
https://www.commentcamarche.net/faq/29493-utiliser-cjoint-pour-heberger-des-fichiers
-