insérer une date à la première cellule non vide

Le
Sunburn
Bonjour,
je souhaite insérer la date du jour, dans ma plage "date", mais sur la
première ligne, sur la première ligne non vide.
Comment puis-je faire, ou adapter mon code actuel ?
Merci.
Yann
-
Private Sub Workbook_BeforePrint(Cancel As Boolean)
[Date].Cells(1) = Format(Now, "dd/mm/yyyy")
End Sub
--
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
JPMonnier
Le #17514421
Bonjour,
Private Sub Workbook_BeforePrint(Cancel As Boolean)
For Each n In [a1:a100]
If n = "" Then
n.Value = Date
Exit Sub
End If
Next
End Sub
--
Cordialement

"Sunburn" news:
Bonjour,
je souhaite insérer la date du jour, dans ma plage "date", mais sur la
première ligne, sur la première ligne non vide.
Comment puis-je faire, ou adapter mon code actuel ?
Merci.
Yann
----
Private Sub Workbook_BeforePrint(Cancel As Boolean)
[Date].Cells(1) = Format(Now, "dd/mm/yyyy")
End Sub
-----


Sunburn
Le #17514751
Ok, par contre, il faudrait spécifier la page qui est "DA", ou alors mettre
juste la plage "date" qui fait N5 à N34 de la page "DA".
Merci

"JPMonnier" a écrit :

Bonjour,
Private Sub Workbook_BeforePrint(Cancel As Boolean)
For Each n In [a1:a100]
If n = "" Then
n.Value = Date
Exit Sub
End If
Next
End Sub
--
Cordialement

"Sunburn" news:
> Bonjour,
> je souhaite insérer la date du jour, dans ma plage "date", mais sur la
> première ligne, sur la première ligne non vide.
> Comment puis-je faire, ou adapter mon code actuel ?
> Merci.
> Yann
> ----
> Private Sub Workbook_BeforePrint(Cancel As Boolean)
> [Date].Cells(1) = Format(Now, "dd/mm/yyyy")
> End Sub
> -----




JPMonnier
Le #17515201
For Each n In Sheets("DA").[N5:N34]
If n = "" Then
n.Value = Date
Exit Sub
End If
Next
End Sub
Ps : Si tu nommes des plages, évites d'utiliser des noms qui peuvent
correspondre à des fonctions VBA ou Excel
--
Cordialement

"Sunburn" news:
Ok, par contre, il faudrait spécifier la page qui est "DA", ou alors
mettre
juste la plage "date" qui fait N5 à N34 de la page "DA".
Merci

"JPMonnier" a écrit :

Bonjour,
Private Sub Workbook_BeforePrint(Cancel As Boolean)
For Each n In [a1:a100]
If n = "" Then
n.Value = Date
Exit Sub
End If
Next
End Sub
--
Cordialement

"Sunburn" news:
> Bonjour,
> je souhaite insérer la date du jour, dans ma plage "date", mais sur la
> première ligne, sur la première ligne non vide.
> Comment puis-je faire, ou adapter mon code actuel ?
> Merci.
> Yann
> ----
> Private Sub Workbook_BeforePrint(Cancel As Boolean)
> [Date].Cells(1) = Format(Now, "dd/mm/yyyy")
> End Sub
> -----






Sunburn
Le #17515411
Je te remercie, c'est impecable.
Yann

"JPMonnier" a écrit :

For Each n In Sheets("DA").[N5:N34]
If n = "" Then
n.Value = Date
Exit Sub
End If
Next
End Sub
Ps : Si tu nommes des plages, évites d'utiliser des noms qui peuvent
correspondre à des fonctions VBA ou Excel
--
Cordialement

"Sunburn" news:
> Ok, par contre, il faudrait spécifier la page qui est "DA", ou alors
> mettre
> juste la plage "date" qui fait N5 à N34 de la page "DA".
> Merci
>
> "JPMonnier" a écrit :
>
>> Bonjour,
>> Private Sub Workbook_BeforePrint(Cancel As Boolean)
>> For Each n In [a1:a100]
>> If n = "" Then
>> n.Value = Date
>> Exit Sub
>> End If
>> Next
>> End Sub
>> --
>> Cordialement
>>
>> "Sunburn" >> news:
>> > Bonjour,
>> > je souhaite insérer la date du jour, dans ma plage "date", mais sur la
>> > première ligne, sur la première ligne non vide.
>> > Comment puis-je faire, ou adapter mon code actuel ?
>> > Merci.
>> > Yann
>> > ----
>> > Private Sub Workbook_BeforePrint(Cancel As Boolean)
>> > [Date].Cells(1) = Format(Now, "dd/mm/yyyy")
>> > End Sub
>> > -----
>>
>>




lSteph
Le #17515681
Bonjour,
Dans la mesure où cela peut aussi bien être une autre feuille qui soit
imprimée je mettrais plutôt ça ailleurs que dans
le Workbook_BeforePrint, sinon ta feuille sera datée à chaque
uimpression d'une feuille du classeur.

Sub DatetImprimeDa()
Dim r As Long, c As Range, tst As Boolean
tst = False
With Worksheets("Da")
For r = 5 To 34
For Each c In .Rows(r).Cells

If Not IsEmpty(c) _
Then tst = True: Exit For

Next c
If tst Then
.Range("n" & r) = Format(Now, "dd/mm/yyyy")
.PrintOut
Exit For
End If
Next r
If Not tst Then MsgBox "rien à imprimer"
End With
End Sub

'lSteph




On 13 oct, 13:33, Sunburn
Bonjour,
je souhaite insérer la date du jour, dans ma plage "date", mais sur la
première ligne, sur la première ligne non vide.
Comment puis-je faire, ou adapter mon code actuel ?
Merci.
Yann
----
Private Sub Workbook_BeforePrint(Cancel As Boolean)
[Date].Cells(1) = Format(Now, "dd/mm/yyyy")
End Sub
-----


lSteph
Le #17515911
Bonsoir,

Alors désolé le mien est parti avant que je voies celui-ci!
;-)
Toutefois je vois pas où est testée la première ligne NON-vide
là je vois la première cellule vide de N5:N34.

Comme quoi des fois on croit comprendre un truc et c'est autre chose.

@+

--
lSteph

On 13 oct, 18:05, Sunburn
Je te remercie, c'est impecable.
Yann

"JPMonnier" a écrit :

> For Each n In Sheets("DA").[N5:N34]
>     If n = "" Then
>          n.Value = Date
>          Exit Sub
>     End If
> Next
> End Sub
> Ps : Si tu nommes des plages, évites d'utiliser des noms qui peuvent
> correspondre à des fonctions VBA ou Excel
> --
> Cordialement
>
> "Sunburn" >news:
> > Ok, par contre, il faudrait spécifier la page qui est "DA", ou alor s
> > mettre
> > juste la plage "date" qui fait N5 à N34 de la page "DA".
> > Merci

> > "JPMonnier" a écrit :

> >> Bonjour,
> >> Private Sub Workbook_BeforePrint(Cancel As Boolean)
> >> For Each n In [a1:a100]
> >>   If n = "" Then
> >>     n.Value = Date
> >>     Exit Sub
> >>   End If
> >> Next
> >> End Sub
> >> --
> >> Cordialement
> >>
> >> "Sunburn" > >>news:
> >> > Bonjour,
> >> > je souhaite insérer la date du jour, dans ma plage "date", mais sur la
> >> > première ligne, sur la première ligne non vide.
> >> > Comment puis-je faire, ou adapter mon code actuel ?
> >> > Merci.
> >> > Yann
> >> > ----
> >> > Private Sub Workbook_BeforePrint(Cancel As Boolean)
> >> > [Date].Cells(1) = Format(Now, "dd/mm/yyyy")
> >> > End Sub
> >> > -----


JPMonnier
Le #17516251
Salut LSteph
Tu as raison, la 1ère ligne n'est pas testée, mais l'énoncé était un peu
ambigu !!

--
Cordialement

"lSteph" news:
Bonsoir,

Alors désolé le mien est parti avant que je voies celui-ci!
;-)
Toutefois je vois pas où est testée la première ligne NON-vide
là je vois la première cellule vide de N5:N34.

Comme quoi des fois on croit comprendre un truc et c'est autre chose.

@+

--
lSteph

On 13 oct, 18:05, Sunburn
Je te remercie, c'est impecable.
Yann

"JPMonnier" a écrit :

> For Each n In Sheets("DA").[N5:N34]
> If n = "" Then
> n.Value = Date
> Exit Sub
> End If
> Next
> End Sub
> Ps : Si tu nommes des plages, évites d'utiliser des noms qui peuvent
> correspondre à des fonctions VBA ou Excel
> --
> Cordialement
>
> "Sunburn" >news:
> > Ok, par contre, il faudrait spécifier la page qui est "DA", ou alors
> > mettre
> > juste la plage "date" qui fait N5 à N34 de la page "DA".
> > Merci

> > "JPMonnier" a écrit :

> >> Bonjour,
> >> Private Sub Workbook_BeforePrint(Cancel As Boolean)
> >> For Each n In [a1:a100]
> >> If n = "" Then
> >> n.Value = Date
> >> Exit Sub
> >> End If
> >> Next
> >> End Sub
> >> --
> >> Cordialement
> >>
> >> "Sunburn" > >> de
> >>news:
> >> > Bonjour,
> >> > je souhaite insérer la date du jour, dans ma plage "date", mais sur
> >> > la
> >> > première ligne, sur la première ligne non vide.
> >> > Comment puis-je faire, ou adapter mon code actuel ?
> >> > Merci.
> >> > Yann
> >> > ----
> >> > Private Sub Workbook_BeforePrint(Cancel As Boolean)
> >> > [Date].Cells(1) = Format(Now, "dd/mm/yyyy")
> >> > End Sub
> >> > -----


Sunburn
Le #17520551
Bonjour Isteph,
en fait, ce que je recherche, c'est d'avoir un suivi des dates d'impression,
je m'explique (car je n'étais peut être pas assez précis):
je souhaite avoir la date réelle d'impression de chacune des pages qui
sortent sur l'imprimante.
Donc, dans chaque page, j'ai une cellule qui est :
---
=SI($A$4="NA";"N/A";RECHERCHE(2;1/NON(date="");date))
---
qui reprend en fait la dernière cellule non vide de ma plage "date".

Donc, est-ce que ma solution actuelle est optimale, ou bien ton code
pourrait simplifier le traitement ?



"lSteph" a écrit :

Bonjour,
Dans la mesure où cela peut aussi bien être une autre feuille qui soit
imprimée je mettrais plutôt ça ailleurs que dans
le Workbook_BeforePrint, sinon ta feuille sera datée à chaque
uimpression d'une feuille du classeur.

Sub DatetImprimeDa()
Dim r As Long, c As Range, tst As Boolean
tst = False
With Worksheets("Da")
For r = 5 To 34
For Each c In .Rows(r).Cells

If Not IsEmpty(c) _
Then tst = True: Exit For

Next c
If tst Then
..Range("n" & r) = Format(Now, "dd/mm/yyyy")
..PrintOut
Exit For
End If
Next r
If Not tst Then MsgBox "rien à imprimer"
End With
End Sub

'lSteph


LSteph
Le #17520931
Bonjour,

Vraisemblablement non, car j'avais cru comprendre que tu voulais mettre
une date dans ta plage date sur la première ligne non vide de la feuille
nommée "Da".

Or si

1-ce que propose JP convient. Donc c'est que j'avais mal compris.

2-Ajouté à cela que je lis encore autre chose maintenant et ne saisis
pas du tout pourquoi cette formule qui envisagerait complètement autre
chose.
3-Du coup je ne comprend absolument plus rien à ce que tu demande.

Donc résolument non, je ne crois pas pouvoir dire, ni que ta solution
soit optimale puisque je n'en sais rien et pour sûr non plus que mon
code convienne!


@+

--
lSteph

Sunburn a écrit :
Bonjour Isteph,
en fait, ce que je recherche, c'est d'avoir un suivi des dates d'impression,
je m'explique (car je n'étais peut être pas assez précis):
je souhaite avoir la date réelle d'impression de chacune des pages qui
sortent sur l'imprimante.
Donc, dans chaque page, j'ai une cellule qui est :
---
=SI($A$4="NA";"N/A";RECHERCHE(2;1/NON(date="");date))
---
qui reprend en fait la dernière cellule non vide de ma plage "date".

Donc, est-ce que ma solution actuelle est optimale, ou bien ton code
pourrait simplifier le traitement ?



"lSteph" a écrit :

Bonjour,
Dans la mesure où cela peut aussi bien être une autre feuille qui soit
imprimée je mettrais plutôt ça ailleurs que dans
le Workbook_BeforePrint, sinon ta feuille sera datée à chaque
uimpression d'une feuille du classeur.

Sub DatetImprimeDa()
Dim r As Long, c As Range, tst As Boolean
tst = False
With Worksheets("Da")
For r = 5 To 34
For Each c In .Rows(r).Cells

If Not IsEmpty(c) _
Then tst = True: Exit For

Next c
If tst Then
..Range("n" & r) = Format(Now, "dd/mm/yyyy")
..PrintOut
Exit For
End If
Next r
If Not tst Then MsgBox "rien à imprimer"
End With
End Sub

'lSteph




Sunburn
Le #17521181
Re,
il est vrai que je suis peut être un peu "fouilli" dans mes demandes.
Merci de ton aide, il faut que je structure un peu plus mes questions, mais
il est vrai que c'est plus facile à imaginer qu'à expliquer ... ,car je
pensais être compréhensif, :'(
Merci encore.
Yann

"LSteph" a écrit :

Bonjour,

Vraisemblablement non, car j'avais cru comprendre que tu voulais mettre
une date dans ta plage date sur la première ligne non vide de la feuille
nommée "Da".

Or si

1-ce que propose JP convient. Donc c'est que j'avais mal compris.

2-Ajouté à cela que je lis encore autre chose maintenant et ne saisis
pas du tout pourquoi cette formule qui envisagerait complètement autre
chose.
3-Du coup je ne comprend absolument plus rien à ce que tu demande.

Donc résolument non, je ne crois pas pouvoir dire, ni que ta solution
soit optimale puisque je n'en sais rien et pour sûr non plus que mon
code convienne!


@+

--
lSteph

Sunburn a écrit :
> Bonjour Isteph,
> en fait, ce que je recherche, c'est d'avoir un suivi des dates d'impression,
> je m'explique (car je n'étais peut être pas assez précis):
> je souhaite avoir la date réelle d'impression de chacune des pages qui
> sortent sur l'imprimante.
> Donc, dans chaque page, j'ai une cellule qui est :
> ---
> =SI($A$4="NA";"N/A";RECHERCHE(2;1/NON(date="");date))
> ---
> qui reprend en fait la dernière cellule non vide de ma plage "date".
>
> Donc, est-ce que ma solution actuelle est optimale, ou bien ton code
> pourrait simplifier le traitement ?
>
>
>
> "lSteph" a écrit :
>
>> Bonjour,
>> Dans la mesure où cela peut aussi bien être une autre feuille qui soit
>> imprimée je mettrais plutôt ça ailleurs que dans
>> le Workbook_BeforePrint, sinon ta feuille sera datée à chaque
>> uimpression d'une feuille du classeur.
>>
>> Sub DatetImprimeDa()
>> Dim r As Long, c As Range, tst As Boolean
>> tst = False
>> With Worksheets("Da")
>> For r = 5 To 34
>> For Each c In .Rows(r).Cells
>>
>> If Not IsEmpty(c) _
>> Then tst = True: Exit For
>>
>> Next c
>> If tst Then
>> ..Range("n" & r) = Format(Now, "dd/mm/yyyy")
>> ..PrintOut
>> Exit For
>> End If
>> Next r
>> If Not tst Then MsgBox "rien à imprimer"
>> End With
>> End Sub
>>
>> 'lSteph



Publicité
Poster une réponse
Anonyme