Excel 2007 VBA : Pb format de colonne "date"
Résolu/Fermé
Eaheru
Messages postés
197
Date d'inscription
mercredi 23 juin 2010
Statut
Membre
Dernière intervention
12 mars 2018
-
19 oct. 2010 à 14:07
Eaheru Messages postés 197 Date d'inscription mercredi 23 juin 2010 Statut Membre Dernière intervention 12 mars 2018 - 20 oct. 2010 à 09:20
Eaheru Messages postés 197 Date d'inscription mercredi 23 juin 2010 Statut Membre Dernière intervention 12 mars 2018 - 20 oct. 2010 à 09:20
A voir également:
- Excel 2007 VBA : Pb format de colonne "date"
- Liste déroulante excel - Guide
- Save as pdf office 2007 - Télécharger - Bureautique
- Word et excel gratuit - Guide
- Si et excel - Guide
- Déplacer une colonne excel - Guide
7 réponses
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 757
19 oct. 2010 à 14:20
19 oct. 2010 à 14:20
Re-
Peux tu nous faire vite fait un fichier "type" d'un import que tu fais? Place un lien vers un fichier xls (version<2007).
Peux tu nous faire vite fait un fichier "type" d'un import que tu fais? Place un lien vers un fichier xls (version<2007).
Eaheru
Messages postés
197
Date d'inscription
mercredi 23 juin 2010
Statut
Membre
Dernière intervention
12 mars 2018
20
19 oct. 2010 à 14:27
19 oct. 2010 à 14:27
Merci de ton aide. :)
J'ai fait un fichier Excel 2003 d'exemple. La autres colonnes étant "confidentielles" je les ai supprimées. cela explique le décalage de colonnes entre mon code et ce fichier
http://www6.play-host.net/?tdfs=1&searchbox=1&showDomain=1
J'ai fait un fichier Excel 2003 d'exemple. La autres colonnes étant "confidentielles" je les ai supprimées. cela explique le décalage de colonnes entre mon code et ce fichier
http://www6.play-host.net/?tdfs=1&searchbox=1&showDomain=1
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 757
19 oct. 2010 à 14:43
19 oct. 2010 à 14:43
Alors ceci devrait te satisfaire :
Dim Lig1 As Integer, derlig1 As Integer, Col1 As Integer For Lig1 = 2 To derlig1 For Col1 = 8 To 11 'ici on traite le cas de 00/00/00 00:00 par un simple test, sinon il y a incompatibilité If Left(Cells(Lig1, Col1).Value, 2) <> "00" Then 'CDate() renvoyait un format : mm/dd/yyyy, 'en passant par format(Cells,"dd/mm/yyyy")le format est bon Cells(Lig1, Col1).Value = Format(Left(Cells(Lig1, Col1).Value, 10), "dd/mm/yyyy") Else 'ici mets la valeur souhaitée si ta date est 00/00/0000 00:00 Cells(Lig1, Col1).Value = "" End If Next Col1 Next Lig1
Eaheru
Messages postés
197
Date d'inscription
mercredi 23 juin 2010
Statut
Membre
Dernière intervention
12 mars 2018
20
19 oct. 2010 à 14:55
19 oct. 2010 à 14:55
Merci ca me permet un gros pas en avant.
Toutefois, je n'arrive pas encore à pouvoir placer mes filtres de type :
Dim Off1date As Date
Off1date = Date + 14
ActiveSheet.Range("A1:S" & Range("A65536").End(xlUp).Row).AutoFilter Field:=11, Criteria1:= _
"<" & Off1date, Operator:=xlAnd
' Filtrage "date de début" > Aujourd'hui +14
ActiveSheet.Range("A1:S" & Range("A65536").End(xlUp).Row).AutoFilter Field:=9, Criteria1:= _
">" & Off1date, Operator:=xlAnd
Les dates dans les colonnes ne semblent pas être accessibles à un filtrage temporel, (impossible a placer manuellement, ca reste grisé)
Toutefois, je n'arrive pas encore à pouvoir placer mes filtres de type :
Dim Off1date As Date
Off1date = Date + 14
ActiveSheet.Range("A1:S" & Range("A65536").End(xlUp).Row).AutoFilter Field:=11, Criteria1:= _
"<" & Off1date, Operator:=xlAnd
' Filtrage "date de début" > Aujourd'hui +14
ActiveSheet.Range("A1:S" & Range("A65536").End(xlUp).Row).AutoFilter Field:=9, Criteria1:= _
">" & Off1date, Operator:=xlAnd
Les dates dans les colonnes ne semblent pas être accessibles à un filtrage temporel, (impossible a placer manuellement, ca reste grisé)
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 757
19 oct. 2010 à 15:07
19 oct. 2010 à 15:07
Chez moi, les filtres fonctionnent... Que veux tu faire exactement?
Eaheru
Messages postés
197
Date d'inscription
mercredi 23 juin 2010
Statut
Membre
Dernière intervention
12 mars 2018
20
19 oct. 2010 à 15:21
19 oct. 2010 à 15:21
Le but est de filtrer les dates, en colonne 11, qui sont strictement inférieure à aujourd'hui + 14 jours et celle de la colonne 9 qui sont strictement supérieures à aujourd'hui + 14 jours.
Manuellement j'utilise un filtre chronologique "avant" pour la colonne 11, puis un autre filtre chronologique "après" pour la colonne 9
J'avais récupéré le codage de mes actions manuelles, mais peut être que je m'entête dans une mauvaise voie et qu'en VB il vaut mieux réécrire complètement ces filtres ?
Manuellement j'utilise un filtre chronologique "avant" pour la colonne 11, puis un autre filtre chronologique "après" pour la colonne 9
J'avais récupéré le codage de mes actions manuelles, mais peut être que je m'entête dans une mauvaise voie et qu'en VB il vaut mieux réécrire complètement ces filtres ?
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 757
19 oct. 2010 à 15:29
19 oct. 2010 à 15:29
Le but est de filtrer les dates, en colonne 11, qui sont strictement inférieure à aujourd'hui + 14 jours Dans l'exemple que tu m'as transmis : 0 dates...
Mais par contre, je ne m'y connait pas suffisamment pour t'aider sur les filtres...
Mais par contre, je ne m'y connait pas suffisamment pour t'aider sur les filtres...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Eaheru
Messages postés
197
Date d'inscription
mercredi 23 juin 2010
Statut
Membre
Dernière intervention
12 mars 2018
20
19 oct. 2010 à 15:32
19 oct. 2010 à 15:32
Ah, j'ai du copié une plage déjà filtrée.
C'est pas grave, merci de ton aide, ça m'a vraiment aidé :)
C'est pas grave, merci de ton aide, ça m'a vraiment aidé :)
Eaheru
Messages postés
197
Date d'inscription
mercredi 23 juin 2010
Statut
Membre
Dernière intervention
12 mars 2018
20
19 oct. 2010 à 20:07
19 oct. 2010 à 20:07
Par contre mon probleme n'est pas reglé, car apres avoir copié les ates dans les d'autres colonnes (ou la j'ai bien des dates au bon format, je peux manuellement faire un filtre chronogique < date +14 (par exemple) mais si je fais la meme chose par ma macro, le seul filtre dispo semble etre un filtre textuel....
Du coup mon filtre ne sort aucune ligne ...
Quelqu'un verrait comment gérer ça svp ?
Du coup mon filtre ne sort aucune ligne ...
Quelqu'un verrait comment gérer ça svp ?
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 757
20 oct. 2010 à 08:31
20 oct. 2010 à 08:31
Plutôt que de filtrer par les fonctions d'excel : Données/Filtrer, pourquoi ne pas faire un "filtre" en VBA. Tu filtrerais alors par macro.
Quelque chose comme :
Quelque chose comme :
For lign = 2 To derlig If Cells(lign, 9).Value > Date +14 Then Cells(lign, 1).EntireRow.Hidden = true End If Next
Eaheru
Messages postés
197
Date d'inscription
mercredi 23 juin 2010
Statut
Membre
Dernière intervention
12 mars 2018
20
20 oct. 2010 à 09:20
20 oct. 2010 à 09:20
Ah oui, c'est une bonne idée :)
J'y ai travaillé tard hier soir et je suis passé par un autre biais qui est de comparer la date puis d'afficher un oui dans une autre colonne, ensuite je filtre les "oui"
Ta proposition est plus propre. Je vais tester !
Merci de ton aide :)
J'y ai travaillé tard hier soir et je suis passé par un autre biais qui est de comparer la date puis d'afficher un oui dans une autre colonne, ensuite je filtre les "oui"
Ta proposition est plus propre. Je vais tester !
Merci de ton aide :)