Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 Application match et dates

eric72

XLDnaute Accro
Bonjour à tous
j'essaie d'utiliser application match avec des dates comme cela:

If Sheets("Planning").Range("n4") = "" Or Sheets("Planning").Range("al4") = "" Then MsgBox "Vous devez sélectionner une année et une semaine": Exit Sub
colcible = Application.Match(Format(Sheets("Planning").Range(t7), "dd/mm/yyyy"), Sheets("Archives").Range("b1:m1"), 0)

Mais encore une fois cela ne fonctionne pas et je ne comprends pas pourquoi, auriez-vous une idée de ce dysfonctionnement.
Merci beaucoup
Eric
 
Solution
Bonjour,
Malgré les apparences, à partir de la colonne D, ce ne sont plus des dates, mais du texte...
Donc, quelque soit le code...
Maintenant, si tu mets les dates au bon format, tu peux essayer ainsi :
VB:
Sub Cherch_Col()
Dim ColCible As Long
ColCible = Application.Match(CLng(Sheets("Planning").Range("T7").Value), Sheets("Archives").Range("B1:NJ1"), 0)
End Sub
Bon courage

Lolote83

XLDnaute Barbatruc
Bonjour,
Sans aucune conviction et sans fichier pour tester, dans la ligne
colcible = Application.Match(Format(Sheets("Planning").Range(t7), "dd/mm/yyyy"),Sheets("Archives").Range("b1:m1"), 0)
1) Ne faut il pas écrire range("T7") avec guillemets
2) Essayer avec "jj/mm/aaaa" à la place de "dd/mm/yyyy"

Ceci reste juste des suppositions
@+ Lolote83
 

JM27

XLDnaute Barbatruc
Bonjour

VB:
Sub test()
    Dim colcible As Byte
    colcible = Application.Match(Sheets("Planning").Range("t7"), Sheets("Archives").Range("b1:m1"), 0)
End Sub

Edition: déclenche une erreur si date non trouvée ; donc erreur à gérer
 

Pièces jointes

  • test.xlsm
    14.7 KB · Affichages: 5
Dernière édition:

eric72

XLDnaute Accro
Bonjour Job 75 et JM27,

Merci pour la réponse mais les dates existent bien, j'ai essayé avec
format(sheets("Planning").Range("t7"), avec cdate, avec cstr et pourtant les dates sont bien des dates, et rien n'y fait
 

Pièces jointes

  • test planning.xlsm
    664.4 KB · Affichages: 9

Lolote83

XLDnaute Barbatruc
Re bonjour à tous,
Pour la gestion d'erreur comme le stipule @JM27, voici la copie d'écran
Il a fallu que j'enlève l'option explicit et la déclaration de la variable colcible pour que cela fonctionne.


Par contre, dans le fichier joint par @eric72 au post#6, pas de macro.
Ou faire le test ????
@+ Lolote83
 

Cousinhub

XLDnaute Barbatruc
Inactif
Bonjour,
Malgré les apparences, à partir de la colonne D, ce ne sont plus des dates, mais du texte...
Donc, quelque soit le code...
Maintenant, si tu mets les dates au bon format, tu peux essayer ainsi :
VB:
Sub Cherch_Col()
Dim ColCible As Long
ColCible = Application.Match(CLng(Sheets("Planning").Range("T7").Value), Sheets("Archives").Range("B1:NJ1"), 0)
End Sub
Bon courage
 

JM27

XLDnaute Barbatruc
Bonjour
@eric72

Pour vérifier si ce sont bien des dates et non des date affichées en texte:
Faire un alignement standard dans la ligne 1 et agrandir un peu les colonnes :
Les dates au format numérique ont un alignement à droite
Les dates au format texte on un alignement à gauche
 

eric72

XLDnaute Accro
Bonjour bhbh,
En effet, la boulette, ca marche beaucoup mieux sauf que si je reporte dans archive au 16/01/2023, cela colle dans la colonne du 15/01/2023, décidemmment!!!
Je ne vois pas pourquoi.
Merci
 

Cousinhub

XLDnaute Barbatruc
Inactif
Re-,
Si tu veux la colonne exacte, il faut utiliser Rows(1)
Sinon, si tu veux ton Tableau Structuré, essaie ainsi :
VB:
Dim ColCible As Long
ColCible = Application.Match(Sheets("Planning").Range("T7").Text, Range("Tableau1[#Headers]"), 0)
Tu obtiendras le numéro de colonne du TS
 

Discussions similaires

Réponses
28
Affichages
2 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…