Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

VBA test cellule

6 réponses
Avatar
Sunburn
Bonjour,
j'ai une procédure pour qu'avant une impression, la date du jour se saisisse
dans la dernière cellule non vide d'une plage.
Or j'ai un soucis, je fais une édition multiple, d'une selection d'onglet,
et ma liste est incrémenter d'une date à chaque fois.
Donc je voudrais que la date du jour se mette dans la dernère cellule non
vide, si la date du jour est plus récente que le dernière cellule saisie de
ma plage.
Explication et macro :
donc ma plage est "DA", N5 à N65.
si la dernière date de cette plage est la date du jour, alors je ne fais
rien de plus dans le before print, sinon, j'insère la date du jour.
----
'pour insérer la date du jour dans la plage "date"
Private Sub Workbook_BeforePrint(Cancel As Boolean)
On Error Resume Next
For Each n In Sheets("DA").[N5:N65]
If n = "" Then
n.Value = Date
Exit Sub
End If
Next
End Sub
-------
je vous remercie.
YANN

6 réponses

Avatar
FFO
Salut à toi
Je mettrais ton code modifié ainsi :

Private Sub Workbook_BeforePrint(Cancel As Boolean)
On Error Resume Next
For Each n In Sheets("DA").[N5:N65]
If n = "" and n.offset(-1,0) < Date Then
n.Value = Date
Exit Sub
End If
Next
End Sub

Celà devrait convenir
Dit moi !!!
Avatar
Daniel.C
Bonjour.

Private Sub Workbook_BeforePrint(Cancel As Boolean)
Set c = [DA!N65].End(xlUp)
If IsDate(c) Then
c.Value = Date
Else
c.Offset(1).Value = Date
End If
End Sub

Cordialement.
Daniel
Bonjour,
j'ai une procédure pour qu'avant une impression, la date du jour se saisisse
dans la dernière cellule non vide d'une plage.
Or j'ai un soucis, je fais une édition multiple, d'une selection d'onglet,
et ma liste est incrémenter d'une date à chaque fois.
Donc je voudrais que la date du jour se mette dans la dernère cellule non
vide, si la date du jour est plus récente que le dernière cellule saisie de
ma plage.
Explication et macro :
donc ma plage est "DA", N5 à N65.
si la dernière date de cette plage est la date du jour, alors je ne fais
rien de plus dans le before print, sinon, j'insère la date du jour.
----
'pour insérer la date du jour dans la plage "date"
Private Sub Workbook_BeforePrint(Cancel As Boolean)
On Error Resume Next
For Each n In Sheets("DA").[N5:N65]
If n = "" Then
n.Value = Date
Exit Sub
End If
Next
End Sub
-------
je vous remercie.
YANN


Avatar
Sunburn
test :
N5 = 01/10/08
N6 = 02/10/08
N7 = 03/10/08
N8 = 06/10/08
il fait N9 =""
N10 = 06/10/08
puis N11 = ""
puis N12 = 06/10/08

et ainsi de suite, donc pas cool.
Yann


"FFO" a écrit :

Salut à toi
Je mettrais ton code modifié ainsi :

Private Sub Workbook_BeforePrint(Cancel As Boolean)
On Error Resume Next
For Each n In Sheets("DA").[N5:N65]
If n = "" and n.offset(-1,0) < Date Then
n.Value = Date
Exit Sub
End If
Next
End Sub

Celà devrait convenir
Dit moi !!!



Avatar
Sunburn
Daniel,
merci, presque parfait, sauf que la saisie se fait dans la cellule ou la
dernière date est différente de la date d'aujourd'hui, et non pas dans la
première cellule non vide.
Yann

"Daniel.C" a écrit :

Bonjour.

Private Sub Workbook_BeforePrint(Cancel As Boolean)
Set c = [DA!N65].End(xlUp)
If IsDate(c) Then
c.Value = Date
Else
c.Offset(1).Value = Date
End If
End Sub

Cordialement.
Daniel
> Bonjour,
> j'ai une procédure pour qu'avant une impression, la date du jour se saisisse
> dans la dernière cellule non vide d'une plage.
> Or j'ai un soucis, je fais une édition multiple, d'une selection d'onglet,
> et ma liste est incrémenter d'une date à chaque fois.
> Donc je voudrais que la date du jour se mette dans la dernère cellule non
> vide, si la date du jour est plus récente que le dernière cellule saisie de
> ma plage.
> Explication et macro :
> donc ma plage est "DA", N5 à N65.
> si la dernière date de cette plage est la date du jour, alors je ne fais
> rien de plus dans le before print, sinon, j'insère la date du jour.
> ----
> 'pour insérer la date du jour dans la plage "date"
> Private Sub Workbook_BeforePrint(Cancel As Boolean)
> On Error Resume Next
> For Each n In Sheets("DA").[N5:N65]
> If n = "" Then
> n.Value = Date
> Exit Sub
> End If
> Next
> End Sub
> -------
> je vous remercie.
> YANN





Avatar
Daniel.C
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Set c = [DA!N65].End(xlUp)
If IsDate(c) And c.Value <> Date Then
c.Offset(1).Value = Date
End If
End Sub

Daniel

Daniel,
merci, presque parfait, sauf que la saisie se fait dans la cellule ou la
dernière date est différente de la date d'aujourd'hui, et non pas dans la
première cellule non vide.
Yann

"Daniel.C" a écrit :

Bonjour.

Private Sub Workbook_BeforePrint(Cancel As Boolean)
Set c = [DA!N65].End(xlUp)
If IsDate(c) Then
c.Value = Date
Else
c.Offset(1).Value = Date
End If
End Sub

Cordialement.
Daniel
Bonjour,
j'ai une procédure pour qu'avant une impression, la date du jour se
saisisse dans la dernière cellule non vide d'une plage.
Or j'ai un soucis, je fais une édition multiple, d'une selection d'onglet,
et ma liste est incrémenter d'une date à chaque fois.
Donc je voudrais que la date du jour se mette dans la dernère cellule non
vide, si la date du jour est plus récente que le dernière cellule saisie de
ma plage.
Explication et macro :
donc ma plage est "DA", N5 à N65.
si la dernière date de cette plage est la date du jour, alors je ne fais
rien de plus dans le before print, sinon, j'insère la date du jour.
----
'pour insérer la date du jour dans la plage "date"
Private Sub Workbook_BeforePrint(Cancel As Boolean)
On Error Resume Next
For Each n In Sheets("DA").[N5:N65]
If n = "" Then
n.Value = Date
Exit Sub
End If
Next
End Sub
-------
je vous remercie.
YANN









Avatar
Sunburn
Ok, je te remercie, c'est nikel crome !!

Yann

"Daniel.C" a écrit :

Private Sub Workbook_BeforePrint(Cancel As Boolean)
Set c = [DA!N65].End(xlUp)
If IsDate(c) And c.Value <> Date Then
c.Offset(1).Value = Date
End If
End Sub

Daniel

> Daniel,
> merci, presque parfait, sauf que la saisie se fait dans la cellule ou la
> dernière date est différente de la date d'aujourd'hui, et non pas dans la
> première cellule non vide.
> Yann
>
> "Daniel.C" a écrit :
>
>> Bonjour.
>>
>> Private Sub Workbook_BeforePrint(Cancel As Boolean)
>> Set c = [DA!N65].End(xlUp)
>> If IsDate(c) Then
>> c.Value = Date
>> Else
>> c.Offset(1).Value = Date
>> End If
>> End Sub
>>
>> Cordialement.
>> Daniel
>>> Bonjour,
>>> j'ai une procédure pour qu'avant une impression, la date du jour se
>>> saisisse dans la dernière cellule non vide d'une plage.
>>> Or j'ai un soucis, je fais une édition multiple, d'une selection d'onglet,
>>> et ma liste est incrémenter d'une date à chaque fois.
>>> Donc je voudrais que la date du jour se mette dans la dernère cellule non
>>> vide, si la date du jour est plus récente que le dernière cellule saisie de
>>> ma plage.
>>> Explication et macro :
>>> donc ma plage est "DA", N5 à N65.
>>> si la dernière date de cette plage est la date du jour, alors je ne fais
>>> rien de plus dans le before print, sinon, j'insère la date du jour.
>>> ----
>>> 'pour insérer la date du jour dans la plage "date"
>>> Private Sub Workbook_BeforePrint(Cancel As Boolean)
>>> On Error Resume Next
>>> For Each n In Sheets("DA").[N5:N65]
>>> If n = "" Then
>>> n.Value = Date
>>> Exit Sub
>>> End If
>>> Next
>>> End Sub
>>> -------
>>> je vous remercie.
>>> YANN
>>
>>
>>