vba identifier n° colonne d'une suite de dates

Le
j-pascal
Bonjour,

Sur la ligne 10 (ie) à partir de la colonne D, j'ai plusieurs dates.
Comment puis-je récupérer, dans une variable, le numéro qui correspond
à la dernière colonne comportant une date (sachant qu'il y a des
données diverses sur la même ligne après la dernière date) ?

PS : comment compter (en vba toujours) le nombre de dates contenues
dans une ligne (10 ie) ?

Merci pour vos lumières,

JP
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Youky
Le #17734631
Re,
Salut,
For k = [IV10].End(1).Column To 4 Step -1
If IsDate(Cells(10, k)) Then
MsgBox "colonne " & k
i = i + 1
End If
Next
MsgBox "nb de dates " & i

J'espère cette fois ne pas être à coté de la plaque
Youky

"j-pascal"
Bonjour,

Sur la ligne 10 (ie) à partir de la colonne D, j'ai plusieurs dates.
Comment puis-je récupérer, dans une variable, le numéro qui correspond à
la dernière colonne comportant une date (sachant qu'il y a des données
diverses sur la même ligne après la dernière date) ?

PS : comment compter (en vba toujours) le nombre de dates contenues dans
une ligne (10 ie) ?

Merci pour vos lumières,

JP




Ellimac
Le #17734611
Bonjour,

Sub ColonneDate()
Range("iv10").End(xlToLeft).Select
While ActiveCell.Column <> 1
If IsDate(ActiveCell) Then
c = ActiveCell.Column
End
End If
ActiveCell.Offset(, -1).Select
Wend
End Sub

Sub CompterDates()
Rows("10:10").SpecialCells(xlCellTypeConstants, 1).Select
For Each c In Selection
If IsDate(c) Then a = a + 1
Next
End Sub


Camille

"j-pascal"
Bonjour,

Sur la ligne 10 (ie) à partir de la colonne D, j'ai plusieurs dates.
Comment puis-je récupérer, dans une variable, le numéro qui correspond à
la dernière colonne comportant une date (sachant qu'il y a des données
diverses sur la même ligne après la dernière date) ?

PS : comment compter (en vba toujours) le nombre de dates contenues dans
une ligne (10 ie) ?

Merci pour vos lumières,

JP




j-pascal
Le #17736941
> Re,
Salut,
For k = [IV10].End(1).Column To 4 Step -1
If IsDate(Cells(10, k)) Then
MsgBox "colonne " & k
i = i + 1
End If
Next
MsgBox "nb de dates " & i

J'espère cette fois ne pas être à coté de la plaque
Youky

"j-pascal"
Bonjour,

Sur la ligne 10 (ie) à partir de la colonne D, j'ai plusieurs dates.
Comment puis-je récupérer, dans une variable, le numéro qui correspond à la
dernière colonne comportant une date (sachant qu'il y a des données
diverses sur la même ligne après la dernière date) ?

PS : comment compter (en vba toujours) le nombre de dates contenues dans
une ligne (10 ie) ?

Merci pour vos lumières,

JP







Re,

Sauf erreur de ma part, ça marche plutôt bien, sauf que chaque fois que
je valide la msgbox, le numéro de colonne se "dé"crémente !
Je souhaite conserver le numéro de la colonne la plus à droite.
@+ ?
JP
j-pascal
Le #17736921
> Bonjour,

Sub ColonneDate()
Range("iv10").End(xlToLeft).Select
While ActiveCell.Column <> 1
If IsDate(ActiveCell) Then
c = ActiveCell.Column
End
End If
ActiveCell.Offset(, -1).Select
Wend
End Sub

Sub CompterDates()
Rows("10:10").SpecialCells(xlCellTypeConstants, 1).Select
For Each c In Selection
If IsDate(c) Then a = a + 1
Next
End Sub


Camille

"j-pascal"
Bonjour,

Sur la ligne 10 (ie) à partir de la colonne D, j'ai plusieurs dates.
Comment puis-je récupérer, dans une variable, le numéro qui correspond à la
dernière colonne comportant une date (sachant qu'il y a des données
diverses sur la même ligne après la dernière date) ?

PS : comment compter (en vba toujours) le nombre de dates contenues dans
une ligne (10 ie) ?

Merci pour vos lumières,

JP







Bonjour Camille,

Ton code 1 sélectionne la dernière date et ne renvoit pas le numéro de
colonne dans laquelle se trouve la dite date !
Ton code 2 sélectionne toute les dates de la ligne 10.

Je te remercie pour ces deux codes (que je conserve précieusement car
ils sont très intéressants) mais ils ne correspondent pas tout à fait à
ma demande.

JP
Ellimac
Le #17737281
Bonjour,

Dans l'exemple 1 la variable c récupère le n° de la colonne contenant la
dernière date.
Dans l'exemple 2 la variable a récupère le nombre de cellules contenant une
date.

Camille

"j-pascal"
Bonjour,

Sub ColonneDate()
Range("iv10").End(xlToLeft).Select
While ActiveCell.Column <> 1
If IsDate(ActiveCell) Then
c = ActiveCell.Column
End
End If
ActiveCell.Offset(, -1).Select
Wend
End Sub

Sub CompterDates()
Rows("10:10").SpecialCells(xlCellTypeConstants, 1).Select
For Each c In Selection
If IsDate(c) Then a = a + 1
Next
End Sub


Camille

"j-pascal"
Bonjour,

Sur la ligne 10 (ie) à partir de la colonne D, j'ai plusieurs dates.
Comment puis-je récupérer, dans une variable, le numéro qui correspond à
la dernière colonne comportant une date (sachant qu'il y a des données
diverses sur la même ligne après la dernière date) ?

PS : comment compter (en vba toujours) le nombre de dates contenues dans
une ligne (10 ie) ?

Merci pour vos lumières,

JP







Bonjour Camille,

Ton code 1 sélectionne la dernière date et ne renvoit pas le numéro de
colonne dans laquelle se trouve la dite date !
Ton code 2 sélectionne toute les dates de la ligne 10.

Je te remercie pour ces deux codes (que je conserve précieusement car ils
sont très intéressants) mais ils ne correspondent pas tout à fait à ma
demande.

JP




Youky
Le #17737271
Alors comme ceci...

For k = [IV10].End(1).Column To 4 Step -1
If IsDate(Cells(10, k)) Then
If col = "" Then MsgBox "colonne " & k: col = k
i = i + 1
End If
Next
MsgBox "nb de dates " & i

Youky


"j-pascal"
Re,
Salut,
For k = [IV10].End(1).Column To 4 Step -1
If IsDate(Cells(10, k)) Then
MsgBox "colonne " & k
i = i + 1
End If
Next
MsgBox "nb de dates " & i

J'espère cette fois ne pas être à coté de la plaque
Youky

"j-pascal"
Bonjour,

Sur la ligne 10 (ie) à partir de la colonne D, j'ai plusieurs dates.
Comment puis-je récupérer, dans une variable, le numéro qui correspond à
la dernière colonne comportant une date (sachant qu'il y a des données
diverses sur la même ligne après la dernière date) ?

PS : comment compter (en vba toujours) le nombre de dates contenues dans
une ligne (10 ie) ?

Merci pour vos lumières,

JP







Re,

Sauf erreur de ma part, ça marche plutôt bien, sauf que chaque fois que je
valide la msgbox, le numéro de colonne se "dé"crémente !
Je souhaite conserver le numéro de la colonne la plus à droite.
@+ ?
JP




j-pascal
Le #17738291
Merci.

Pour le numéro de colonne, c'est parfait !
Pour le nombre de dates, il semble qu'il y ait une erreur ...

@+ ?
JP
Alors comme ceci...

For k = [IV10].End(1).Column To 4 Step -1
If IsDate(Cells(10, k)) Then
If col = "" Then MsgBox "colonne " & k: col = k
i = i + 1
End If
Next
MsgBox "nb de dates " & i

Youky


"j-pascal"
Re,
Salut,
For k = [IV10].End(1).Column To 4 Step -1
If IsDate(Cells(10, k)) Then
MsgBox "colonne " & k
i = i + 1
End If
Next
MsgBox "nb de dates " & i

J'espère cette fois ne pas être à coté de la plaque
Youky

"j-pascal"
Bonjour,

Sur la ligne 10 (ie) à partir de la colonne D, j'ai plusieurs dates.
Comment puis-je récupérer, dans une variable, le numéro qui correspond à
la dernière colonne comportant une date (sachant qu'il y a des données
diverses sur la même ligne après la dernière date) ?

PS : comment compter (en vba toujours) le nombre de dates contenues dans
une ligne (10 ie) ?

Merci pour vos lumières,

JP







Re,

Sauf erreur de ma part, ça marche plutôt bien, sauf que chaque fois que je
valide la msgbox, le numéro de colonne se "dé"crémente !
Je souhaite conserver le numéro de la colonne la plus à droite.
@+ ?
JP






Youky
Le #17738831
To 3 au lieu de 4 pour lire aussi col D
Ici j'ai mis le msgbox aprés la boucle
Youky

For k = [IV10].End(1).Column To 3 Step -1
If IsDate(Cells(10, k)) Then
If col = "" Then col = k
i = i + 1
End If
Next
MsgBox "colonne " & col
MsgBox "nb de dates " & i

"j-pascal"
Merci.

Pour le numéro de colonne, c'est parfait !
Pour le nombre de dates, il semble qu'il y ait une erreur ...

@+ ?
JP
Alors comme ceci...

For k = [IV10].End(1).Column To 4 Step -1
If IsDate(Cells(10, k)) Then
If col = "" Then MsgBox "colonne " & k: col = k
i = i + 1
End If
Next
MsgBox "nb de dates " & i

Youky


"j-pascal"
Re,
Salut,
For k = [IV10].End(1).Column To 4 Step -1
If IsDate(Cells(10, k)) Then
MsgBox "colonne " & k
i = i + 1
End If
Next
MsgBox "nb de dates " & i

J'espère cette fois ne pas être à coté de la plaque
Youky

"j-pascal"
Bonjour,

Sur la ligne 10 (ie) à partir de la colonne D, j'ai plusieurs dates.
Comment puis-je récupérer, dans une variable, le numéro qui correspond
à la dernière colonne comportant une date (sachant qu'il y a des
données diverses sur la même ligne après la dernière date) ?

PS : comment compter (en vba toujours) le nombre de dates contenues
dans une ligne (10 ie) ?

Merci pour vos lumières,

JP







Re,

Sauf erreur de ma part, ça marche plutôt bien, sauf que chaque fois que
je valide la msgbox, le numéro de colonne se "dé"crémente !
Je souhaite conserver le numéro de la colonne la plus à droite.
@+ ?
JP










j-pascal
Le #17739161
Re,
Merci Youki,
Ca n'a pas marché du premier coup ! Le résultat était inférieur au
nombre réel de date. J'ai dû supprimer des dates pour que ça
corresponde au résultat du 2nd msgbox. Si j'en rajoute, alors le compte
est bon. On dirait que la mémoire de la variable est conservée ; mais
bon, peut-être ai-je fait une mauvaise manip ...

@+ ?

JP

To 3 au lieu de 4 pour lire aussi col D
Ici j'ai mis le msgbox aprés la boucle
Youky

For k = [IV10].End(1).Column To 3 Step -1
If IsDate(Cells(10, k)) Then
If col = "" Then col = k
i = i + 1
End If
Next
MsgBox "colonne " & col
MsgBox "nb de dates " & i

"j-pascal"
Merci.

Pour le numéro de colonne, c'est parfait !
Pour le nombre de dates, il semble qu'il y ait une erreur ...

@+ ?
JP
Alors comme ceci...

For k = [IV10].End(1).Column To 4 Step -1
If IsDate(Cells(10, k)) Then
If col = "" Then MsgBox "colonne " & k: col = k
i = i + 1
End If
Next
MsgBox "nb de dates " & i

Youky


"j-pascal"
Re,
Salut,
For k = [IV10].End(1).Column To 4 Step -1
If IsDate(Cells(10, k)) Then
MsgBox "colonne " & k
i = i + 1
End If
Next
MsgBox "nb de dates " & i

J'espère cette fois ne pas être à coté de la plaque
Youky

"j-pascal"
Bonjour,

Sur la ligne 10 (ie) à partir de la colonne D, j'ai plusieurs dates.
Comment puis-je récupérer, dans une variable, le numéro qui correspond
à la dernière colonne comportant une date (sachant qu'il y a des
données diverses sur la même ligne après la dernière date) ?

PS : comment compter (en vba toujours) le nombre de dates contenues
dans une ligne (10 ie) ?

Merci pour vos lumières,

JP







Re,

Sauf erreur de ma part, ça marche plutôt bien, sauf que chaque fois que
je valide la msgbox, le numéro de colonne se "dé"crémente !
Je souhaite conserver le numéro de la colonne la plus à droite.
@+ ?
JP












j-pascal
Le #17739121
Re,

On est d'accord que dans l'ex. 1 la dernière date de la ligne est
sélectionnée ? Ce que je souhaite, ce n'est pas la sélection mais le
numéro de la colonne correspondant à la position de la dernière date ;
çàd "10" si la dite date est dans la colonne "J".

On est d'accord que dans l'ex. 2 toutes les dates sont sélectionnées ?
Ce que je souhaite, c'est le nombre de dates (soit "10" s'il y a 10
dates) et non leur sélection.

J'ai simplement copié ton code dans mon module de feuille ; aurais-je
oublié qqch ?

@+ ?

JP

Bonjour,

Dans l'exemple 1 la variable c récupère le n° de la colonne contenant la
dernière date.
Dans l'exemple 2 la variable a récupère le nombre de cellules contenant une
date.

Camille

"j-pascal"
Bonjour,

Sub ColonneDate()
Range("iv10").End(xlToLeft).Select
While ActiveCell.Column <> 1
If IsDate(ActiveCell) Then
c = ActiveCell.Column
End
End If
ActiveCell.Offset(, -1).Select
Wend
End Sub

Sub CompterDates()
Rows("10:10").SpecialCells(xlCellTypeConstants, 1).Select
For Each c In Selection
If IsDate(c) Then a = a + 1
Next
End Sub


Camille

"j-pascal"
Bonjour,

Sur la ligne 10 (ie) à partir de la colonne D, j'ai plusieurs dates.
Comment puis-je récupérer, dans une variable, le numéro qui correspond à
la dernière colonne comportant une date (sachant qu'il y a des données
diverses sur la même ligne après la dernière date) ?

PS : comment compter (en vba toujours) le nombre de dates contenues dans
une ligne (10 ie) ?

Merci pour vos lumières,

JP







Bonjour Camille,

Ton code 1 sélectionne la dernière date et ne renvoit pas le numéro de
colonne dans laquelle se trouve la dite date !
Ton code 2 sélectionne toute les dates de la ligne 10.

Je te remercie pour ces deux codes (que je conserve précieusement car ils
sont très intéressants) mais ils ne correspondent pas tout à fait à ma
demande.

JP






Publicité
Poster une réponse
Anonyme