[Oupsss, j'annule et recommence mon envoi, j'ai remarqué que ma date était
mal réglée sur le précédent...]
Bonsoir,
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.../
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
poy-poy
Bonjour,
Tu fais une boucle pour aller jusqu'à la ligne 9000. Puis tu séléctionnes la plage qu'il te faut avec un end(xldown) en utilisant l'incrementeur i pour être au bon endroit. Enfin, tu donnes à i sa valeur suivante.
Cordialement Poy-Poy
Sub essai()
For i = 1 To 9000 Range(Range("A" & i), Cells(Range("A" & i).End(xlDown).Row - 1, 1)) = Range("A" & i).Value i = Range("A" & i).End(xlDown).Row - 1 Next For i = 1 To 9000 Range(Range("B" & i), Cells(Range("B" & i).End(xlDown).Row - 1, 1)) = Range("B" & i).Value i = Range("B" & i).End(xlDown).Row - 1 Next
End Sub
"géjoun" wrote:
[Oupsss, j'annule et recommence mon envoi, j'ai remarqué que ma date était mal réglée sur le précédent...]
Bonsoir,
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
/Enlever l'année pour répondre.../
Bonjour,
Tu fais une boucle pour aller jusqu'à la ligne 9000. Puis tu séléctionnes la
plage qu'il te faut avec un end(xldown) en utilisant l'incrementeur i pour
être au bon endroit. Enfin, tu donnes à i sa valeur suivante.
Cordialement
Poy-Poy
Sub essai()
For i = 1 To 9000
Range(Range("A" & i), Cells(Range("A" & i).End(xlDown).Row - 1, 1)) =
Range("A" & i).Value
i = Range("A" & i).End(xlDown).Row - 1
Next
For i = 1 To 9000
Range(Range("B" & i), Cells(Range("B" & i).End(xlDown).Row - 1, 1)) =
Range("B" & i).Value
i = Range("B" & i).End(xlDown).Row - 1
Next
End Sub
"géjoun" wrote:
[Oupsss, j'annule et recommence mon envoi, j'ai remarqué que ma date était
mal réglée sur le précédent...]
Bonsoir,
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.../
Tu fais une boucle pour aller jusqu'à la ligne 9000. Puis tu séléctionnes la plage qu'il te faut avec un end(xldown) en utilisant l'incrementeur i pour être au bon endroit. Enfin, tu donnes à i sa valeur suivante.
Cordialement Poy-Poy
Sub essai()
For i = 1 To 9000 Range(Range("A" & i), Cells(Range("A" & i).End(xlDown).Row - 1, 1)) = Range("A" & i).Value i = Range("A" & i).End(xlDown).Row - 1 Next For i = 1 To 9000 Range(Range("B" & i), Cells(Range("B" & i).End(xlDown).Row - 1, 1)) = Range("B" & i).Value i = Range("B" & i).End(xlDown).Row - 1 Next
End Sub
"géjoun" wrote:
[Oupsss, j'annule et recommence mon envoi, j'ai remarqué que ma date était mal réglée sur le précédent...]
Bonsoir,
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
/Enlever l'année pour répondre.../
géjoun
poy-poy nous expliquait:
Bonjour,
Je viens d'essayer le code que tu me fournis en faisant un pas à pas détaillé pour comprendre le principe, mais est-ce qu'il ne manque pas un petit quelque chose pour stopper la boucle aprés la colonne A et repartir sur la colonne B? Car, ça me reporte bien les valeurs correctement tel que je le souhaite, mais ça m'incrémente jusqu'à l'avant dernière ligne du tableau (65535) la dernière valeur trouvée, à la place de se stopper à la ligne 9000; et en plus, lorsque la boucle passe à la colonne B, ça m'incrémente seulement la 1ère valeur trouvée en B sans tenir compte des autres présentes dans la colonne, mais en plus, ça me reporte cette même valeur sur la colonne A, écrasant ce qu'avait fait la 1ère boucle correctement.
Est-ce normal, ou il faut adapter quelque chose dans la macro avant de s'en servir telle quelle?
Merci!
-- géjoun
/Enlever l'année pour répondre.../
Bonjour,
Tu fais une boucle pour aller jusqu'à la ligne 9000. Puis tu séléctionnes la plage qu'il te faut avec un end(xldown) en utilisant l'incrementeur i pour être au bon endroit. Enfin, tu donnes à i sa valeur suivante.
Cordialement Poy-Poy
Sub essai()
For i = 1 To 9000 Range(Range("A" & i), Cells(Range("A" & i).End(xlDown).Row - 1, 1)) = Range("A" & i).Value i = Range("A" & i).End(xlDown).Row - 1 Next For i = 1 To 9000 Range(Range("B" & i), Cells(Range("B" & i).End(xlDown).Row - 1, 1)) = Range("B" & i).Value i = Range("B" & i).End(xlDown).Row - 1 Next
End Sub
poy-poy <poypoy@discussions.microsoft.com> nous expliquait:
Bonjour,
Je viens d'essayer le code que tu me fournis en faisant un pas à pas
détaillé pour comprendre le principe, mais est-ce qu'il ne manque pas un
petit quelque chose pour stopper la boucle aprés la colonne A et repartir
sur la colonne B?
Car, ça me reporte bien les valeurs correctement tel que je le souhaite,
mais ça m'incrémente jusqu'à l'avant dernière ligne du tableau (65535) la
dernière valeur trouvée, à la place de se stopper à la ligne 9000; et en
plus, lorsque la boucle passe à la colonne B, ça m'incrémente seulement la
1ère valeur trouvée en B sans tenir compte des autres présentes dans la
colonne, mais en plus, ça me reporte cette même valeur sur la colonne A,
écrasant ce qu'avait fait la 1ère boucle correctement.
Est-ce normal, ou il faut adapter quelque chose dans la macro avant de s'en
servir telle quelle?
Merci!
--
géjoun
dam-mail2006@ifrance.com
/Enlever l'année pour répondre.../
Bonjour,
Tu fais une boucle pour aller jusqu'à la ligne 9000. Puis tu
séléctionnes la plage qu'il te faut avec un end(xldown) en utilisant
l'incrementeur i pour être au bon endroit. Enfin, tu donnes à i sa
valeur suivante.
Cordialement
Poy-Poy
Sub essai()
For i = 1 To 9000
Range(Range("A" & i), Cells(Range("A" & i).End(xlDown).Row - 1,
1)) = Range("A" & i).Value
i = Range("A" & i).End(xlDown).Row - 1
Next
For i = 1 To 9000
Range(Range("B" & i), Cells(Range("B" & i).End(xlDown).Row - 1,
1)) = Range("B" & i).Value
i = Range("B" & i).End(xlDown).Row - 1
Next
Je viens d'essayer le code que tu me fournis en faisant un pas à pas détaillé pour comprendre le principe, mais est-ce qu'il ne manque pas un petit quelque chose pour stopper la boucle aprés la colonne A et repartir sur la colonne B? Car, ça me reporte bien les valeurs correctement tel que je le souhaite, mais ça m'incrémente jusqu'à l'avant dernière ligne du tableau (65535) la dernière valeur trouvée, à la place de se stopper à la ligne 9000; et en plus, lorsque la boucle passe à la colonne B, ça m'incrémente seulement la 1ère valeur trouvée en B sans tenir compte des autres présentes dans la colonne, mais en plus, ça me reporte cette même valeur sur la colonne A, écrasant ce qu'avait fait la 1ère boucle correctement.
Est-ce normal, ou il faut adapter quelque chose dans la macro avant de s'en servir telle quelle?
Merci!
-- géjoun
/Enlever l'année pour répondre.../
Bonjour,
Tu fais une boucle pour aller jusqu'à la ligne 9000. Puis tu séléctionnes la plage qu'il te faut avec un end(xldown) en utilisant l'incrementeur i pour être au bon endroit. Enfin, tu donnes à i sa valeur suivante.
Cordialement Poy-Poy
Sub essai()
For i = 1 To 9000 Range(Range("A" & i), Cells(Range("A" & i).End(xlDown).Row - 1, 1)) = Range("A" & i).Value i = Range("A" & i).End(xlDown).Row - 1 Next For i = 1 To 9000 Range(Range("B" & i), Cells(Range("B" & i).End(xlDown).Row - 1, 1)) = Range("B" & i).Value i = Range("B" & i).End(xlDown).Row - 1 Next