Bonjour,
Voici du code que je voudrais compléter :
Sub toto()
Range("d2").Select
While ActiveCell <> ""
n = ActiveCell.Value
If n <> 1 Then
Range(ActiveCell.Offset(1), ActiveCell.Offset(n - 1)).EntireRow.Insert
' Ici trouver une commande pour copier (en format texte) la ligne du
dessus sur toutes les lignes insérées, sans incrémenter les chiffres qui
sont recopiés
ActiveCell.Offset(n).Select
Else
ActiveCell.Offset(1).Select
End If
Wend
End Sub
En fait j'ai une source Excel avec une liste d'adresses que je souhaite
utiliser
dans word pour un publipostage d'étiquettes.
Le but est d'automatiser la transformation de ce fichier
source en utilisant la variable n, située colonne d. Cette variable est un
nombre associé à chaque
adresse, et représente le nombre de fois que la même adresse va devoir être
imprimée (sur étiquettes autocollantes).
Voici un exemple :
Supposons qu'au départ mon fichier source contient une colonne avec 100 noms
de personnes différentes, puis une colonne avec les adresses, puis une
colonne avec pour variable le nombre 10 pour 50 adresses et 1 pour les 50
autres, il faudra donc imprimer 550 étiquettes.
Je voudrais donc que ma macro puisse me générer une nouvelle feuille avec
les 550 adresses (dont 50 adresses répétées identiquement 10 fois ligne
après ligne, et 50 autres une seule fois).
Quelqu'un saurait il m'aider à trouver la solution ?
merci beaucoup
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
Jean-François Aubert
Salut Bru,
La Feuil1 est la feuille qui comporte les adresses de départ. La Feuil2 est la feuille qui comportera les X enregistrements pour l'impression des étiquettes.
Sub yy() Dim plg, c, i Sheets("Feuil1").Select Set plg = Sheets("Feuil1").[D2:D65536].SpecialCells(xlCellTypeConstants, xlNumbers) For Each c In plg For nb = 1 To c.Value i = i + 1 Sheets("Feuil1").Range(Cells(c.Row, 1), Cells(c.Row, 4)).Copy _ Destination:=Sheets("Feuil2").Cells(i, 1) Next Next Set plg = Nothing End Sub
-- Amicalement
Jean-François Aubert {Vaudois de la Côte Lémanique}
"Bru" a écrit dans le message de news:bubt6k$6o6$
Bonjour, Voici du code que je voudrais compléter :
Sub toto() Range("d2").Select While ActiveCell <> "" n = ActiveCell.Value If n <> 1 Then Range(ActiveCell.Offset(1), ActiveCell.Offset(n - 1)).EntireRow.Insert ' Ici trouver une commande pour copier (en format texte) la ligne du dessus sur toutes les lignes insérées, sans incrémenter les chiffres qui sont recopiés ActiveCell.Offset(n).Select Else ActiveCell.Offset(1).Select End If Wend End Sub
En fait j'ai une source Excel avec une liste d'adresses que je souhaite utiliser dans word pour un publipostage d'étiquettes.
Le but est d'automatiser la transformation de ce fichier source en utilisant la variable n, située colonne d. Cette variable est un nombre associé à chaque adresse, et représente le nombre de fois que la même adresse va devoir être imprimée (sur étiquettes autocollantes).
Voici un exemple : Supposons qu'au départ mon fichier source contient une colonne avec 100 noms de personnes différentes, puis une colonne avec les adresses, puis une colonne avec pour variable le nombre 10 pour 50 adresses et 1 pour les 50 autres, il faudra donc imprimer 550 étiquettes.
Je voudrais donc que ma macro puisse me générer une nouvelle feuille avec les 550 adresses (dont 50 adresses répétées identiquement 10 fois ligne après ligne, et 50 autres une seule fois).
Quelqu'un saurait il m'aider à trouver la solution ? merci beaucoup
Salut Bru,
La Feuil1 est la feuille qui comporte les adresses de départ.
La Feuil2 est la feuille qui comportera les X enregistrements pour l'impression des étiquettes.
Sub yy()
Dim plg, c, i
Sheets("Feuil1").Select
Set plg = Sheets("Feuil1").[D2:D65536].SpecialCells(xlCellTypeConstants, xlNumbers)
For Each c In plg
For nb = 1 To c.Value
i = i + 1
Sheets("Feuil1").Range(Cells(c.Row, 1), Cells(c.Row, 4)).Copy _
Destination:=Sheets("Feuil2").Cells(i, 1)
Next
Next
Set plg = Nothing
End Sub
--
Amicalement
Jean-François Aubert
{Vaudois de la Côte Lémanique}
"Bru" <ouaiyii@yahoo.fr> a écrit dans le message de news:bubt6k$6o6$1@news-reader5.wanadoo.fr...
Bonjour,
Voici du code que je voudrais compléter :
Sub toto()
Range("d2").Select
While ActiveCell <> ""
n = ActiveCell.Value
If n <> 1 Then
Range(ActiveCell.Offset(1), ActiveCell.Offset(n - 1)).EntireRow.Insert
' Ici trouver une commande pour copier (en format texte) la ligne du
dessus sur toutes les lignes insérées, sans incrémenter les chiffres qui
sont recopiés
ActiveCell.Offset(n).Select
Else
ActiveCell.Offset(1).Select
End If
Wend
End Sub
En fait j'ai une source Excel avec une liste d'adresses que je souhaite
utiliser
dans word pour un publipostage d'étiquettes.
Le but est d'automatiser la transformation de ce fichier
source en utilisant la variable n, située colonne d. Cette variable est un
nombre associé à chaque
adresse, et représente le nombre de fois que la même adresse va devoir être
imprimée (sur étiquettes autocollantes).
Voici un exemple :
Supposons qu'au départ mon fichier source contient une colonne avec 100 noms
de personnes différentes, puis une colonne avec les adresses, puis une
colonne avec pour variable le nombre 10 pour 50 adresses et 1 pour les 50
autres, il faudra donc imprimer 550 étiquettes.
Je voudrais donc que ma macro puisse me générer une nouvelle feuille avec
les 550 adresses (dont 50 adresses répétées identiquement 10 fois ligne
après ligne, et 50 autres une seule fois).
Quelqu'un saurait il m'aider à trouver la solution ?
merci beaucoup
La Feuil1 est la feuille qui comporte les adresses de départ. La Feuil2 est la feuille qui comportera les X enregistrements pour l'impression des étiquettes.
Sub yy() Dim plg, c, i Sheets("Feuil1").Select Set plg = Sheets("Feuil1").[D2:D65536].SpecialCells(xlCellTypeConstants, xlNumbers) For Each c In plg For nb = 1 To c.Value i = i + 1 Sheets("Feuil1").Range(Cells(c.Row, 1), Cells(c.Row, 4)).Copy _ Destination:=Sheets("Feuil2").Cells(i, 1) Next Next Set plg = Nothing End Sub
-- Amicalement
Jean-François Aubert {Vaudois de la Côte Lémanique}
"Bru" a écrit dans le message de news:bubt6k$6o6$
Bonjour, Voici du code que je voudrais compléter :
Sub toto() Range("d2").Select While ActiveCell <> "" n = ActiveCell.Value If n <> 1 Then Range(ActiveCell.Offset(1), ActiveCell.Offset(n - 1)).EntireRow.Insert ' Ici trouver une commande pour copier (en format texte) la ligne du dessus sur toutes les lignes insérées, sans incrémenter les chiffres qui sont recopiés ActiveCell.Offset(n).Select Else ActiveCell.Offset(1).Select End If Wend End Sub
En fait j'ai une source Excel avec une liste d'adresses que je souhaite utiliser dans word pour un publipostage d'étiquettes.
Le but est d'automatiser la transformation de ce fichier source en utilisant la variable n, située colonne d. Cette variable est un nombre associé à chaque adresse, et représente le nombre de fois que la même adresse va devoir être imprimée (sur étiquettes autocollantes).
Voici un exemple : Supposons qu'au départ mon fichier source contient une colonne avec 100 noms de personnes différentes, puis une colonne avec les adresses, puis une colonne avec pour variable le nombre 10 pour 50 adresses et 1 pour les 50 autres, il faudra donc imprimer 550 étiquettes.
Je voudrais donc que ma macro puisse me générer une nouvelle feuille avec les 550 adresses (dont 50 adresses répétées identiquement 10 fois ligne après ligne, et 50 autres une seule fois).
Quelqu'un saurait il m'aider à trouver la solution ? merci beaucoup
Bru
Merci ! ça marche impecable !
"Jean-François Aubert" <à a écrit dans le message de news:
Salut Bru,
La Feuil1 est la feuille qui comporte les adresses de départ. La Feuil2 est la feuille qui comportera les X enregistrements pour l'impression des étiquettes.
Sub yy() Dim plg, c, i Sheets("Feuil1").Select Set plg = Sheets("Feuil1").[D2:D65536].SpecialCells(xlCellTypeConstants, xlNumbers)
For Each c In plg For nb = 1 To c.Value i = i + 1 Sheets("Feuil1").Range(Cells(c.Row, 1), Cells(c.Row, 4)).Copy _ Destination:=Sheets("Feuil2").Cells(i, 1) Next Next Set plg = Nothing End Sub
-- Amicalement
Jean-François Aubert {Vaudois de la Côte Lémanique}
"Bru" a écrit dans le message de news:bubt6k$6o6$
Bonjour, Voici du code que je voudrais compléter :
Sub toto() Range("d2").Select While ActiveCell <> "" n = ActiveCell.Value If n <> 1 Then Range(ActiveCell.Offset(1), ActiveCell.Offset(n - 1)).EntireRow.Insert
' Ici trouver une commande pour copier (en format texte) la ligne du
dessus sur toutes les lignes insérées, sans incrémenter les chiffres qui sont recopiés ActiveCell.Offset(n).Select Else ActiveCell.Offset(1).Select End If Wend End Sub
En fait j'ai une source Excel avec une liste d'adresses que je souhaite utiliser dans word pour un publipostage d'étiquettes.
Le but est d'automatiser la transformation de ce fichier source en utilisant la variable n, située colonne d. Cette variable est un
nombre associé à chaque adresse, et représente le nombre de fois que la même adresse va devoir être
imprimée (sur étiquettes autocollantes).
Voici un exemple : Supposons qu'au départ mon fichier source contient une colonne avec 100 noms
de personnes différentes, puis une colonne avec les adresses, puis une colonne avec pour variable le nombre 10 pour 50 adresses et 1 pour les 50
autres, il faudra donc imprimer 550 étiquettes.
Je voudrais donc que ma macro puisse me générer une nouvelle feuille avec
les 550 adresses (dont 50 adresses répétées identiquement 10 fois ligne après ligne, et 50 autres une seule fois).
Quelqu'un saurait il m'aider à trouver la solution ? merci beaucoup
Merci ! ça marche impecable !
"Jean-François Aubert" <àOterjfaubert@bluewin.ch> a écrit dans le message de
news:eXopNZT3DHA.1764@TK2MSFTNGP10.phx.gbl...
Salut Bru,
La Feuil1 est la feuille qui comporte les adresses de départ.
La Feuil2 est la feuille qui comportera les X enregistrements pour
l'impression des étiquettes.
Sub yy()
Dim plg, c, i
Sheets("Feuil1").Select
Set plg = Sheets("Feuil1").[D2:D65536].SpecialCells(xlCellTypeConstants,
xlNumbers)
For Each c In plg
For nb = 1 To c.Value
i = i + 1
Sheets("Feuil1").Range(Cells(c.Row, 1), Cells(c.Row, 4)).Copy _
Destination:=Sheets("Feuil2").Cells(i, 1)
Next
Next
Set plg = Nothing
End Sub
--
Amicalement
Jean-François Aubert
{Vaudois de la Côte Lémanique}
"Bru" <ouaiyii@yahoo.fr> a écrit dans le message de
news:bubt6k$6o6$1@news-reader5.wanadoo.fr...
Bonjour,
Voici du code que je voudrais compléter :
Sub toto()
Range("d2").Select
While ActiveCell <> ""
n = ActiveCell.Value
If n <> 1 Then
Range(ActiveCell.Offset(1), ActiveCell.Offset(n -
1)).EntireRow.Insert
' Ici trouver une commande pour copier (en format texte) la ligne
du
dessus sur toutes les lignes insérées, sans incrémenter les chiffres qui
sont recopiés
ActiveCell.Offset(n).Select
Else
ActiveCell.Offset(1).Select
End If
Wend
End Sub
En fait j'ai une source Excel avec une liste d'adresses que je souhaite
utiliser
dans word pour un publipostage d'étiquettes.
Le but est d'automatiser la transformation de ce fichier
source en utilisant la variable n, située colonne d. Cette variable est
un
nombre associé à chaque
adresse, et représente le nombre de fois que la même adresse va devoir
être
imprimée (sur étiquettes autocollantes).
Voici un exemple :
Supposons qu'au départ mon fichier source contient une colonne avec 100
noms
de personnes différentes, puis une colonne avec les adresses, puis une
colonne avec pour variable le nombre 10 pour 50 adresses et 1 pour les
50
autres, il faudra donc imprimer 550 étiquettes.
Je voudrais donc que ma macro puisse me générer une nouvelle feuille
avec
les 550 adresses (dont 50 adresses répétées identiquement 10 fois ligne
après ligne, et 50 autres une seule fois).
Quelqu'un saurait il m'aider à trouver la solution ?
merci beaucoup
"Jean-François Aubert" <à a écrit dans le message de news:
Salut Bru,
La Feuil1 est la feuille qui comporte les adresses de départ. La Feuil2 est la feuille qui comportera les X enregistrements pour l'impression des étiquettes.
Sub yy() Dim plg, c, i Sheets("Feuil1").Select Set plg = Sheets("Feuil1").[D2:D65536].SpecialCells(xlCellTypeConstants, xlNumbers)
For Each c In plg For nb = 1 To c.Value i = i + 1 Sheets("Feuil1").Range(Cells(c.Row, 1), Cells(c.Row, 4)).Copy _ Destination:=Sheets("Feuil2").Cells(i, 1) Next Next Set plg = Nothing End Sub
-- Amicalement
Jean-François Aubert {Vaudois de la Côte Lémanique}
"Bru" a écrit dans le message de news:bubt6k$6o6$
Bonjour, Voici du code que je voudrais compléter :
Sub toto() Range("d2").Select While ActiveCell <> "" n = ActiveCell.Value If n <> 1 Then Range(ActiveCell.Offset(1), ActiveCell.Offset(n - 1)).EntireRow.Insert
' Ici trouver une commande pour copier (en format texte) la ligne du
dessus sur toutes les lignes insérées, sans incrémenter les chiffres qui sont recopiés ActiveCell.Offset(n).Select Else ActiveCell.Offset(1).Select End If Wend End Sub
En fait j'ai une source Excel avec une liste d'adresses que je souhaite utiliser dans word pour un publipostage d'étiquettes.
Le but est d'automatiser la transformation de ce fichier source en utilisant la variable n, située colonne d. Cette variable est un
nombre associé à chaque adresse, et représente le nombre de fois que la même adresse va devoir être
imprimée (sur étiquettes autocollantes).
Voici un exemple : Supposons qu'au départ mon fichier source contient une colonne avec 100 noms
de personnes différentes, puis une colonne avec les adresses, puis une colonne avec pour variable le nombre 10 pour 50 adresses et 1 pour les 50
autres, il faudra donc imprimer 550 étiquettes.
Je voudrais donc que ma macro puisse me générer une nouvelle feuille avec
les 550 adresses (dont 50 adresses répétées identiquement 10 fois ligne après ligne, et 50 autres une seule fois).
Quelqu'un saurait il m'aider à trouver la solution ? merci beaucoup