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

Incrémenter du texte en VBA jusqu'au suivant

5 réponses
Avatar
géjoun
Bonjour,

Je cherche à créer une macro en VBA pour incrémenter du texte dans une plage
définie A1:B9000.
J'ai un tableau de 2 colonnes, et dans les colonnes A et B, je voudrais
qu'une macro m'incrémente le texte trouvé en 1er jusqu'au suivant.

Par ex, j'ai "01" en A1, puis jusqu'à A160, je n'ai plus rien, et en A161,
j'ai "02"; donc je cherche à avoir une macro qui m'incrémente "01" jusqu'en
A160, puis à partir de A161, ça m'incrémente "02" jusqu'à trouvé une autre
valeur, et à ce moment là, ça stoppe l'incrémentation de "02", puis commence
l'incrémentation de la nouvelle valeur.
Et pareil pour la colonne B; en B1, j'ai "DIVERS", et aprés, je n'ai plus
rien jusqu'à la cellule B26 où j'ai "AUTRES"; dans ce cas, la macro
m'incrémente "DIVERS" jusqu'en B25, puis commence l'incrémentation de
"AUTRES" jusqu'à butter sur une nouvelle donnée; et ce jusqu'à la fin de la
plage définie (A1:B9000).

J'ai essayé de faire quelque chose avec l'enregistreur de maco, mais je
n'arrive pas à définir la condition 'si il y a une nouvelle valeur, alors
incrémenter la nouvelle'.

Merci d'avance!

--
géjoun
dam-mail2006@ifrance.com
/Enlever l'année pour répondre.../

5 réponses

Avatar
isabelle
bonjour,

veut tu dire par "incrémente" recopier vers le bas ?

isabelle


Bonjour,

Je cherche à créer une macro en VBA pour incrémenter du texte dans une plage
définie A1:B9000.
J'ai un tableau de 2 colonnes, et dans les colonnes A et B, je voudrais
qu'une macro m'incrémente le texte trouvé en 1er jusqu'au suivant.

Par ex, j'ai "01" en A1, puis jusqu'à A160, je n'ai plus rien, et en A161,
j'ai "02"; donc je cherche à avoir une macro qui m'incrémente "01" jusqu'en
A160, puis à partir de A161, ça m'incrémente "02" jusqu'à trouvé une autre
valeur, et à ce moment là, ça stoppe l'incrémentation de "02", puis commence
l'incrémentation de la nouvelle valeur.
Et pareil pour la colonne B; en B1, j'ai "DIVERS", et aprés, je n'ai plus
rien jusqu'à la cellule B26 où j'ai "AUTRES"; dans ce cas, la macro
m'incrémente "DIVERS" jusqu'en B25, puis commence l'incrémentation de
"AUTRES" jusqu'à butter sur une nouvelle donnée; et ce jusqu'à la fin de la
plage définie (A1:B9000).

J'ai essayé de faire quelque chose avec l'enregistreur de maco, mais je
n'arrive pas à définir la condition 'si il y a une nouvelle valeur, alors
incrémenter la nouvelle'.

Merci d'avance!



Avatar
géjoun
isabelle nous expliquait:

bonjour,

veut tu dire par "incrémente" recopier vers le bas ?


Bonjour,

Oui oui, c'est bien ça, recopier "1" jusqu'à "02", puis "02" jusqu'à
"03"...etc...
C'est pas comme ça qu'on dit "incrémenter"?

Merci!

--
géjoun

/Enlever l'année pour répondre.../

Avatar
isabelle
bonjour,

j'ai cette macro, tirer de mon perso, qui fait ce que tu demande, elle est par contre général,
son inconvénient c'est qu'il faut traiter une colonne à la fois,
son avantage est qu'on peut l'utiliser dans plusieur situation.

Sub Remplir_blanc()
Set plg = Application.InputBox(prompt:="Sélectionner la plage à traiter", Type:=8)
dp = plg.Item(1)
For Each c In plg
If c = 0 Then
Range(c.Address) = dp
Else
dp = c
End If
Next
End Sub

isabelle

isabelle nous expliquait:


bonjour,

veut tu dire par "incrémente" recopier vers le bas ?



Bonjour,

Oui oui, c'est bien ça, recopier "1" jusqu'à "02", puis "02" jusqu'à
"03"...etc...
C'est pas comme ça qu'on dit "incrémenter"?

Merci!




Avatar
géjoun
isabelle nous expliquait:

bonjour,

j'ai cette macro, tirer de mon perso, qui fait ce que tu demande,
elle est par contre général, son inconvénient c'est qu'il faut
traiter une colonne à la fois,
son avantage est qu'on peut l'utiliser dans plusieur situation.

Sub Remplir_blanc()
Set plg = Application.InputBox(prompt:="Sélectionner la plage à
traiter", Type:=8)
dp = plg.Item(1)
For Each c In plg
If c = 0 Then
Range(c.Address) = dp
Else
dp = c
End If
Next
End Sub

isabelle



Bonsoir,

Ca ne fait pas tout d'un coup, il faut sélectionner les plages, mais ça me
va, et puis, si je veux la perfectionner, ça me permettra de me pencher
dessus!

Merci!

--
géjoun

/Enlever l'année pour répondre.../

Avatar
Clément Marcotte
Bonjour Isabelle

Pourrais-tu me faire connaître ton adresse électronique, j'aurais une faveur
à te demander.

J'ai mis la mienne là:

http://cjoint.com/?euwwp2bEZL


P.S. Pour JPS, c'est une faveur "informatique"



"isabelle" a écrit dans le message de news:

bonjour,

j'ai cette macro, tirer de mon perso, qui fait ce que tu demande, elle est
par contre général,
son inconvénient c'est qu'il faut traiter une colonne à la fois,
son avantage est qu'on peut l'utiliser dans plusieur situation.

Sub Remplir_blanc()
Set plg = Application.InputBox(prompt:="Sélectionner la plage à traiter",
Type:=8)
dp = plg.Item(1)
For Each c In plg
If c = 0 Then
Range(c.Address) = dp
Else
dp = c
End If
Next
End Sub

isabelle

isabelle nous expliquait:


bonjour,

veut tu dire par "incrémente" recopier vers le bas ?



Bonjour,

Oui oui, c'est bien ça, recopier "1" jusqu'à "02", puis "02" jusqu'à
"03"...etc...
C'est pas comme ça qu'on dit "incrémenter"?

Merci!