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

incrémenter la valeur de la derniere cellule

6 réponses
Avatar
incrémentation
Bonjour à tous et s'il est encore temps meilleurs voeux.
voilà que je me remet dans vba et est ce la fraicheur ou des relents de
fêtes mais toujours est il que je patine.
voila,
dans un fichier a plusieurs onglets : D W & M
en col A je viens positionner des valeurs du style : 01pD0901-1
je voudrais pouvoir de maniere automatique pouvoir venir lire la derniere
valeur et éventuellement l'incrémentée.
01pD09 ; 01pW09 & 01pM09 sont des valeurs invariables !
parcontre
01-1 évolues en fonction du des semaines ou des Mois
donc si le lundi je viens positionner un 01pW0901-1 en a255 je voudrais
alors positioner 01pW0901-2 en a257
(je laisse une ligne blanche entre chaque enregistrement)
c'est donc le dernier digit que je voudrais faire évoluer.
si l'un d'entre vous pouvait éventuellement me mettre sur la piste je lui
serais extremement reconnaissant.
Merci 'avance et bonne continuation

Jlematou

6 réponses

Avatar
Daniel.C
Bonjour.
Pas sûr d'avoir bien compris. Regarde le classeur à l'adresse :
http://www.cijoint.fr/cjlink.php?file=cj200901/cijxbdOTfs.xls
Si tu entres une valeur en colonne A, feuille "W", la cellule sera
recopiée et incrémentée 2 cellules plus bas, si cette cellule est vide.
Le code suvant se trouve dans le module "thisworkbook" :

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As
Range)
If Sh.Name = "D" Or Sh.Name = "W" Or Sh.Name = "M" Then
If Target.Column <> 1 Or Target.Offset(2) <> "" Then Exit Sub
Application.EnableEvents = False
If IsNumeric(Right(Target, 1)) Then
Target.Offset(2) = Left(Target, Len(Target) - 1) &
CInt(Right(Target, 1)) + 1
End If
Application.EnableEvents = True
End If
End Sub

Cordialement.
Daniel

Bonjour à tous et s'il est encore temps meilleurs voeux.
voilà que je me remet dans vba et est ce la fraicheur ou des relents de
fêtes mais toujours est il que je patine.
voila,
dans un fichier a plusieurs onglets : D W & M
en col A je viens positionner des valeurs du style : 01pD0901-1
je voudrais pouvoir de maniere automatique pouvoir venir lire la derniere
valeur et éventuellement l'incrémentée.
01pD09 ; 01pW09 & 01pM09 sont des valeurs invariables !
parcontre
01-1 évolues en fonction du des semaines ou des Mois
donc si le lundi je viens positionner un 01pW0901-1 en a255 je voudrais
alors positioner 01pW0901-2 en a257
(je laisse une ligne blanche entre chaque enregistrement)
c'est donc le dernier digit que je voudrais faire évoluer.
si l'un d'entre vous pouvait éventuellement me mettre sur la piste je lui
serais extremement reconnaissant.
Merci 'avance et bonne continuation

Jlematou


Avatar
incrémentation
Merci Daniel.c
on y est presque et si j'avais été plus claire nous y serions.
en fait ma macro détermine le fameux par défaut "toto01-1" mais si la
derniere cellule de A$ est déjà "toto01-1" je voudrais qu'en a$ +2 ma macro
écrive toto01-2
merci pour ton aide précieuse
Jlematou

"Daniel.C" a écrit :

Bonjour.
Pas sûr d'avoir bien compris. Regarde le classeur à l'adresse :
http://www.cijoint.fr/cjlink.php?file=cj200901/cijxbdOTfs.xls
Si tu entres une valeur en colonne A, feuille "W", la cellule sera
recopiée et incrémentée 2 cellules plus bas, si cette cellule est vide.
Le code suvant se trouve dans le module "thisworkbook" :

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As
Range)
If Sh.Name = "D" Or Sh.Name = "W" Or Sh.Name = "M" Then
If Target.Column <> 1 Or Target.Offset(2) <> "" Then Exit Sub
Application.EnableEvents = False
If IsNumeric(Right(Target, 1)) Then
Target.Offset(2) = Left(Target, Len(Target) - 1) &
CInt(Right(Target, 1)) + 1
End If
Application.EnableEvents = True
End If
End Sub

Cordialement.
Daniel

> Bonjour à tous et s'il est encore temps meilleurs voeux.
> voilà que je me remet dans vba et est ce la fraicheur ou des relents de
> fêtes mais toujours est il que je patine.
> voila,
> dans un fichier a plusieurs onglets : D W & M
> en col A je viens positionner des valeurs du style : 01pD0901-1
> je voudrais pouvoir de maniere automatique pouvoir venir lire la derniere
> valeur et éventuellement l'incrémentée.
> 01pD09 ; 01pW09 & 01pM09 sont des valeurs invariables !
> parcontre
> 01-1 évolues en fonction du des semaines ou des Mois
> donc si le lundi je viens positionner un 01pW0901-1 en a255 je voudrais
> alors positioner 01pW0901-2 en a257
> (je laisse une ligne blanche entre chaque enregistrement)
> c'est donc le dernier digit que je voudrais faire évoluer.
> si l'un d'entre vous pouvait éventuellement me mettre sur la piste je lui
> serais extremement reconnaissant.
> Merci 'avance et bonne continuation
>
> Jlematou





Avatar
Daniel.C
Oui, mais, qu'est-ce qui déclenche la macro ? une exécution manuelle,
un bouton ou à l'ouverture du classeur, ou autre ?
Daniel

Merci Daniel.c
on y est presque et si j'avais été plus claire nous y serions.
en fait ma macro détermine le fameux par défaut "toto01-1" mais si la
derniere cellule de A$ est déjà "toto01-1" je voudrais qu'en a$ +2 ma macro
écrive toto01-2
merci pour ton aide précieuse
Jlematou

"Daniel.C" a écrit :

Bonjour.
Pas sûr d'avoir bien compris. Regarde le classeur à l'adresse :
http://www.cijoint.fr/cjlink.php?file=cj200901/cijxbdOTfs.xls
Si tu entres une valeur en colonne A, feuille "W", la cellule sera
recopiée et incrémentée 2 cellules plus bas, si cette cellule est vide.
Le code suvant se trouve dans le module "thisworkbook" :

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As
Range)
If Sh.Name = "D" Or Sh.Name = "W" Or Sh.Name = "M" Then
If Target.Column <> 1 Or Target.Offset(2) <> "" Then Exit Sub
Application.EnableEvents = False
If IsNumeric(Right(Target, 1)) Then
Target.Offset(2) = Left(Target, Len(Target) - 1) &
CInt(Right(Target, 1)) + 1
End If
Application.EnableEvents = True
End If
End Sub

Cordialement.
Daniel

Bonjour à tous et s'il est encore temps meilleurs voeux.
voilà que je me remet dans vba et est ce la fraicheur ou des relents de
fêtes mais toujours est il que je patine.
voila,
dans un fichier a plusieurs onglets : D W & M
en col A je viens positionner des valeurs du style : 01pD0901-1
je voudrais pouvoir de maniere automatique pouvoir venir lire la derniere
valeur et éventuellement l'incrémentée.
01pD09 ; 01pW09 & 01pM09 sont des valeurs invariables !
parcontre
01-1 évolues en fonction du des semaines ou des Mois
donc si le lundi je viens positionner un 01pW0901-1 en a255 je voudrais
alors positioner 01pW0901-2 en a257
(je laisse une ligne blanche entre chaque enregistrement)
c'est donc le dernier digit que je voudrais faire évoluer.
si l'un d'entre vous pouvait éventuellement me mettre sur la piste je lui
serais extremement reconnaissant.
Merci 'avance et bonne continuation

Jlematou









Avatar
Daniel.C
Pour une exécution manuelle, utilise dans un module :

Sub test()
Dim c As Range, Feuilles
Feuilles = Array("D", "W", "M")
For i = 0 To UBound(Feuilles)
With Sheets(Feuilles(i))
Set c = .Range("A65000").End(xlUp)
c.Offset(2) = Left(c, Len(c) - 1) & CInt(Right(c, 1)) + 1
End With
Next i
End Sub

Regarde le fichier :
http://www.cijoint.fr/cjlink.php?file=cj200901/cijGqaVt4n.xls

Daniel

Merci Daniel.c
on y est presque et si j'avais été plus claire nous y serions.
en fait ma macro détermine le fameux par défaut "toto01-1" mais si la
derniere cellule de A$ est déjà "toto01-1" je voudrais qu'en a$ +2 ma macro
écrive toto01-2
merci pour ton aide précieuse
Jlematou

"Daniel.C" a écrit :

Bonjour.
Pas sûr d'avoir bien compris. Regarde le classeur à l'adresse :
http://www.cijoint.fr/cjlink.php?file=cj200901/cijxbdOTfs.xls
Si tu entres une valeur en colonne A, feuille "W", la cellule sera
recopiée et incrémentée 2 cellules plus bas, si cette cellule est vide.
Le code suvant se trouve dans le module "thisworkbook" :

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As
Range)
If Sh.Name = "D" Or Sh.Name = "W" Or Sh.Name = "M" Then
If Target.Column <> 1 Or Target.Offset(2) <> "" Then Exit Sub
Application.EnableEvents = False
If IsNumeric(Right(Target, 1)) Then
Target.Offset(2) = Left(Target, Len(Target) - 1) &
CInt(Right(Target, 1)) + 1
End If
Application.EnableEvents = True
End If
End Sub

Cordialement.
Daniel

Bonjour à tous et s'il est encore temps meilleurs voeux.
voilà que je me remet dans vba et est ce la fraicheur ou des relents de
fêtes mais toujours est il que je patine.
voila,
dans un fichier a plusieurs onglets : D W & M
en col A je viens positionner des valeurs du style : 01pD0901-1
je voudrais pouvoir de maniere automatique pouvoir venir lire la derniere
valeur et éventuellement l'incrémentée.
01pD09 ; 01pW09 & 01pM09 sont des valeurs invariables !
parcontre
01-1 évolues en fonction du des semaines ou des Mois
donc si le lundi je viens positionner un 01pW0901-1 en a255 je voudrais
alors positioner 01pW0901-2 en a257
(je laisse une ligne blanche entre chaque enregistrement)
c'est donc le dernier digit que je voudrais faire évoluer.
si l'un d'entre vous pouvait éventuellement me mettre sur la piste je lui
serais extremement reconnaissant.
Merci 'avance et bonne continuation

Jlematou









Avatar
incrémentation
Enfait la macro est exécutée une fois par semaine par action sur un bouton
que j'ai positionné dans un des onglets .
elle effectue un certains nombre d'extractions et c'est le résultat qu'elle
positionne en dernierre ligne +2
c'est donc avant cette derniere la cellule A de cette ligne que je viens
écrire que je voudrais incrémenter

ex: en a235 j'ai 01pD0902-01 (02 puisque nous sommes en Semaine 02)

pour une raison x ou y je dois relancer le traitement le résultat de ma
macro à positionner en a237 est malheureusement encore à ce jour 01pD0902-01
!
c'est bien cette valeur que je voudrais voir passée a 01pD0902-02

suis je un peu plus clair ?

en fait il faudrait que de maniere simple je puisse lire la valeur de A235
pour la comparer à mon résultat et l'incrémenter avant de venir la
positionnée dans le fichier
un truc du style ValDerCel= A$
merci encore pour ta patience et ton aide
jlematou


"Daniel.C" a écrit :

Oui, mais, qu'est-ce qui déclenche la macro ? une exécution manuelle,
un bouton ou à l'ouverture du classeur, ou autre ?
Daniel

> Merci Daniel.c
> on y est presque et si j'avais été plus claire nous y serions.
> en fait ma macro détermine le fameux par défaut "toto01-1" mais si la
> derniere cellule de A$ est déjà "toto01-1" je voudrais qu'en a$ +2 ma macro
> écrive toto01-2
> merci pour ton aide précieuse
> Jlematou
>
> "Daniel.C" a écrit :
>
>> Bonjour.
>> Pas sûr d'avoir bien compris. Regarde le classeur à l'adresse :
>> http://www.cijoint.fr/cjlink.php?file=cj200901/cijxbdOTfs.xls
>> Si tu entres une valeur en colonne A, feuille "W", la cellule sera
>> recopiée et incrémentée 2 cellules plus bas, si cette cellule est vide.
>> Le code suvant se trouve dans le module "thisworkbook" :
>>
>> Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As
>> Range)
>> If Sh.Name = "D" Or Sh.Name = "W" Or Sh.Name = "M" Then
>> If Target.Column <> 1 Or Target.Offset(2) <> "" Then Exit Sub
>> Application.EnableEvents = False
>> If IsNumeric(Right(Target, 1)) Then
>> Target.Offset(2) = Left(Target, Len(Target) - 1) &
>> CInt(Right(Target, 1)) + 1
>> End If
>> Application.EnableEvents = True
>> End If
>> End Sub
>>
>> Cordialement.
>> Daniel
>>
>>> Bonjour à tous et s'il est encore temps meilleurs voeux.
>>> voilà que je me remet dans vba et est ce la fraicheur ou des relents de
>>> fêtes mais toujours est il que je patine.
>>> voila,
>>> dans un fichier a plusieurs onglets : D W & M
>>> en col A je viens positionner des valeurs du style : 01pD0901-1
>>> je voudrais pouvoir de maniere automatique pouvoir venir lire la derniere
>>> valeur et éventuellement l'incrémentée.
>>> 01pD09 ; 01pW09 & 01pM09 sont des valeurs invariables !
>>> parcontre
>>> 01-1 évolues en fonction du des semaines ou des Mois
>>> donc si le lundi je viens positionner un 01pW0901-1 en a255 je voudrais
>>> alors positioner 01pW0901-2 en a257
>>> (je laisse une ligne blanche entre chaque enregistrement)
>>> c'est donc le dernier digit que je voudrais faire évoluer.
>>> si l'un d'entre vous pouvait éventuellement me mettre sur la piste je lui
>>> serais extremement reconnaissant.
>>> Merci 'avance et bonne continuation
>>>
>>> Jlematou
>>
>>
>>





Avatar
Daniel.C
Pas sûr d'avoir bien compris (c'est le froid qui me gèle le cerveau ?)

' dernière cellule de la colonne A
Set c = Range("A65000").End(xlUp)
'incrémente le résultat précédent et l'inscrit 2 cellules plus bas
c.Offset(2) = Left(c, Len(c) - 1) & CInt(Right(c, 1)) + 1

Daniel

Enfait la macro est exécutée une fois par semaine par action sur un bouton
que j'ai positionné dans un des onglets .
elle effectue un certains nombre d'extractions et c'est le résultat qu'elle
positionne en dernierre ligne +2
c'est donc avant cette derniere la cellule A de cette ligne que je viens
écrire que je voudrais incrémenter

ex: en a235 j'ai 01pD0902-01 (02 puisque nous sommes en Semaine 02)

pour une raison x ou y je dois relancer le traitement le résultat de ma
macro à positionner en a237 est malheureusement encore à ce jour 01pD0902-01
!
c'est bien cette valeur que je voudrais voir passée a 01pD0902-02

suis je un peu plus clair ?

en fait il faudrait que de maniere simple je puisse lire la valeur de A235
pour la comparer à mon résultat et l'incrémenter avant de venir la
positionnée dans le fichier
un truc du style ValDerCel= A$
merci encore pour ta patience et ton aide
jlematou