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

Copie et insertion ligne nbre variable

3 réponses
Avatar
François
Bonjour,

Après de nombreux essais en vba, je me tourne vers le forum pour m'aider à
trouver la solution à mon problème !!

Sur une feuille, j'ai une base de données, avec un nombre de ligne variable.
En colonne A, j'ai une valeur numérique.

Je cherche une solution en vba qui récupère cette valeur, la transforme en
entier + 1 (ex : en A1 = 1.2 donne 2) puis copie la ligne A et insère cette
ligne jusqu'au nombre entier + 1, et insère en colonne B un index.

Ex :
A B
1.2 toto
2.7 tata
Résultat
A B C
2 1 toto
2 toto
3 1 tata
2 tata
3 tata
....

Avec mes remerciements anticipés pour vos lumières !

Bien cordialement,
François

3 réponses

Avatar
Jacky
Bonjour,

Essaie ceci
'------------
Sub jj()
For i = [a65536].End(3).Row To 1 Step -1
x = Int(Cells(i, 1)) + 1
nom = Cells(i, 2)
Cells(i, 1) = x: Cells(i, 2) = 1: Cells(i, 3) = nom
For j = 2 To x
Rows(i + j - 1).Insert
Cells(i + j - 1, 2) = j: Cells(i + j - 1, 3) = nom
Next
Next
End Sub
'-------------------

--
Salutations
JJ


"François" a écrit dans le message de news:
%
Bonjour,

Après de nombreux essais en vba, je me tourne vers le forum pour m'aider à
trouver la solution à mon problème !!

Sur une feuille, j'ai une base de données, avec un nombre de ligne
variable. En colonne A, j'ai une valeur numérique.

Je cherche une solution en vba qui récupère cette valeur, la transforme en
entier + 1 (ex : en A1 = 1.2 donne 2) puis copie la ligne A et insère
cette ligne jusqu'au nombre entier + 1, et insère en colonne B un index.

Ex :
A B
1.2 toto
2.7 tata
Résultat
A B C
2 1 toto
2 toto
3 1 tata
2 tata
3 tata
....

Avec mes remerciements anticipés pour vos lumières !

Bien cordialement,
François



Avatar
François
Bonjour Jacky,

Merci pour ta proposition. Est il possible que la macro copie la ligne pour
la coller en dessous, selon la valeur de x.

Merci encore pour ton aide

Bien cordialement,

François

"Jacky" a écrit dans le message de
news:
Bonjour,

Essaie ceci
'------------
Sub jj()
For i = [a65536].End(3).Row To 1 Step -1
x = Int(Cells(i, 1)) + 1
nom = Cells(i, 2)
Cells(i, 1) = x: Cells(i, 2) = 1: Cells(i, 3) = nom
For j = 2 To x
Rows(i + j - 1).Insert
Cells(i + j - 1, 2) = j: Cells(i + j - 1, 3) = nom
Next
Next
End Sub
'-------------------

--
Salutations
JJ


"François" a écrit dans le message de news:
%
Bonjour,

Après de nombreux essais en vba, je me tourne vers le forum pour m'aider
à trouver la solution à mon problème !!

Sur une feuille, j'ai une base de données, avec un nombre de ligne
variable. En colonne A, j'ai une valeur numérique.

Je cherche une solution en vba qui récupère cette valeur, la transforme
en entier + 1 (ex : en A1 = 1.2 donne 2) puis copie la ligne A et insère
cette ligne jusqu'au nombre entier + 1, et insère en colonne B un index.

Ex :
A B
1.2 toto
2.7 tata
Résultat
A B C
2 1 toto
2 toto
3 1 tata
2 tata
3 tata
....

Avec mes remerciements anticipés pour vos lumières !

Bien cordialement,
François







Avatar
Jacky
Re...
la coller en dessous, selon la valeur de x.
????

Peux-tu donner un exemple de ce que tu veux dire?

--
Salutations
JJ


"François" a écrit dans le message de news:
Or2xS2%
Bonjour Jacky,

Merci pour ta proposition. Est il possible que la macro copie la ligne
pour la coller en dessous, selon la valeur de x.

Merci encore pour ton aide

Bien cordialement,

François

"Jacky" a écrit dans le message de
news:
Bonjour,

Essaie ceci
'------------
Sub jj()
For i = [a65536].End(3).Row To 1 Step -1
x = Int(Cells(i, 1)) + 1
nom = Cells(i, 2)
Cells(i, 1) = x: Cells(i, 2) = 1: Cells(i, 3) = nom
For j = 2 To x
Rows(i + j - 1).Insert
Cells(i + j - 1, 2) = j: Cells(i + j - 1, 3) = nom
Next
Next
End Sub
'-------------------

--
Salutations
JJ


"François" a écrit dans le message de news:
%
Bonjour,

Après de nombreux essais en vba, je me tourne vers le forum pour m'aider
à trouver la solution à mon problème !!

Sur une feuille, j'ai une base de données, avec un nombre de ligne
variable. En colonne A, j'ai une valeur numérique.

Je cherche une solution en vba qui récupère cette valeur, la transforme
en entier + 1 (ex : en A1 = 1.2 donne 2) puis copie la ligne A et insère
cette ligne jusqu'au nombre entier + 1, et insère en colonne B un index.

Ex :
A B
1.2 toto
2.7 tata
Résultat
A B C
2 1 toto
2 toto
3 1 tata
2 tata
3 tata
....

Avec mes remerciements anticipés pour vos lumières !

Bien cordialement,
François