VB Excel : Recherche pour atteindre une cellule
Bart59000
Messages postés
3
Statut
Membre
-
jordane45 Messages postés 40050 Statut Modérateur -
jordane45 Messages postés 40050 Statut Modérateur -
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
A voir également:
- VB Excel : Recherche pour atteindre une cellule
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
- Excel trier par ordre croissant chiffre - Guide
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
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
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.
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
Pourrais tu nous partager ton classeur ?
https://www.commentcamarche.net/faq/29493-utiliser-cjoint-pour-heberger-des-fichiers
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 SubEDIT : Ajout des balises de code