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

Macro exel pour publipostage dans word

7 réponses
Avatar
Bru
Bonjour,
J'ai une source Excel avec une liste d'adresses que je souhaite utiliser
dans word pour un publipostage d'étiquettes.
Je suis désemparée car je ne connais pas grand chose au visual basic.

Le problème est que je voudrai automatiser la transformation de ce fichier
source selon une variable. 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

Annie

7 réponses

Avatar
Ellimac
Bonjour,

Traitement à faire sur une copie du fichier dans un module
standard d'Excel :

Sub Toto()
Range("c2").Select
While ActiveCell <> ""
a = ActiveCell.Address
n = ActiveCell.Value
If n <> 1 Then
Range(ActiveCell.Offset(1), ActiveCell.Offset
(n)).EntireRow.Insert
ActiveCell.EntireRow.AutoFill
Destination:¬tiveCell.Rows("1:" & n + 1).EntireRow,
Type:= _
xlFillDefault
ActiveCell.Offset(n + 1).Select
Else
ActiveCell.Offset(1).Select
End If
Wend
End Sub

Camille

-----Message d'origine-----
Bonjour,
J'ai une source Excel avec une liste d'adresses que je
souhaite utiliser

dans word pour un publipostage d'étiquettes.
Je suis désemparée car je ne connais pas grand chose au
visual basic.


Le problème est que je voudrai automatiser la
transformation de ce fichier

source selon une variable. 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

Annie


.



Avatar
brucat
C'est une 1ère idée
il vaut mieux faire avec Word/publipostage avec des "si
alors sinon" et "enregistrement suivant" imbriquée.

-----Message d'origine-----
Bonjour,
J'ai une source Excel avec une liste d'adresses que je
souhaite utiliser

dans word pour un publipostage d'étiquettes.
Je suis désemparée car je ne connais pas grand chose au
visual basic.


Le problème est que je voudrai automatiser la
transformation de ce fichier

source selon une variable. 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

Annie


.



Avatar
Bru
Merci beaucoup, il y a juste un petit problème au niveau de la ligne
ActiveCell.EntireRow.AutoFill, car j'ai un message "argument non
facultatif".
Et aussi au niveau de la ligne du dessous, il semble y avoir un problème car
la ligne reste rouge.

Quelqu'un saurait il m'aider ?
merci
Annie

"Ellimac" a écrit dans le message de
news:089901c3dc30$c0121fa0$
Bonjour,

Traitement à faire sur une copie du fichier dans un module
standard d'Excel :

Sub Toto()
Range("c2").Select
While ActiveCell <> ""
a = ActiveCell.Address
n = ActiveCell.Value
If n <> 1 Then
Range(ActiveCell.Offset(1), ActiveCell.Offset
(n)).EntireRow.Insert
ActiveCell.EntireRow.AutoFill
Destination:¬tiveCell.Rows("1:" & n + 1).EntireRow,
Type:= _
xlFillDefault
ActiveCell.Offset(n + 1).Select
Else
ActiveCell.Offset(1).Select
End If
Wend
End Sub

Camille

-----Message d'origine-----
Bonjour,
J'ai une source Excel avec une liste d'adresses que je
souhaite utiliser

dans word pour un publipostage d'étiquettes.
Je suis désemparée car je ne connais pas grand chose au
visual basic.


Le problème est que je voudrai automatiser la
transformation de ce fichier

source selon une variable. 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

Annie


.



Avatar
sabatier
la ligne est rouge parce que la messagerie l'a coupée, je pense, annie
jps

Bru a écrit:
Merci beaucoup, il y a juste un petit problème au niveau de la ligne
ActiveCell.EntireRow.AutoFill, car j'ai un message "argument non
facultatif".
Et aussi au niveau de la ligne du dessous, il semble y avoir un problème car
la ligne reste rouge.

Quelqu'un saurait il m'aider ?
merci
Annie

"Ellimac" a écrit dans le message de
news:089901c3dc30$c0121fa0$
Bonjour,

Traitement à faire sur une copie du fichier dans un module
standard d'Excel :

Sub Toto()
Range("c2").Select
While ActiveCell <> ""
a = ActiveCell.Address
n = ActiveCell.Value
If n <> 1 Then
Range(ActiveCell.Offset(1), ActiveCell.Offset
(n)).EntireRow.Insert
ActiveCell.EntireRow.AutoFill
Destination:¬tiveCell.Rows("1:" & n + 1).EntireRow,
Type:= _
xlFillDefault
ActiveCell.Offset(n + 1).Select
Else
ActiveCell.Offset(1).Select
End If
Wend
End Sub

Camille


-----Message d'origine-----
Bonjour,
J'ai une source Excel avec une liste d'adresses que je


souhaite utiliser

dans word pour un publipostage d'étiquettes.
Je suis désemparée car je ne connais pas grand chose au


visual basic.

Le problème est que je voudrai automatiser la


transformation de ce fichier

source selon une variable. 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

Annie


.








Avatar
Bru
Oui c'était pour la première, mais le problème m'indique maintenant "Erreur
de compilation Attendu expression", en me surlignant le ":=" qui se trouve
juste après "Destination"
Le problème est que j'ai même pas l'aide vba (excel me demande le cd
d'installation que je ne trouve plus)
Avez vous une idée ?

merci
Annie

"sabatier" a écrit dans le message de
news:
la ligne est rouge parce que la messagerie l'a coupée, je pense, annie
jps

Bru a écrit:
Merci beaucoup, il y a juste un petit problème au niveau de la ligne
ActiveCell.EntireRow.AutoFill, car j'ai un message "argument non
facultatif".
Et aussi au niveau de la ligne du dessous, il semble y avoir un problème
car


la ligne reste rouge.

Quelqu'un saurait il m'aider ?
merci
Annie

"Ellimac" a écrit dans le message
de


news:089901c3dc30$c0121fa0$
Bonjour,

Traitement à faire sur une copie du fichier dans un module
standard d'Excel :

Sub Toto()
Range("c2").Select
While ActiveCell <> ""
a = ActiveCell.Address
n = ActiveCell.Value
If n <> 1 Then
Range(ActiveCell.Offset(1), ActiveCell.Offset
(n)).EntireRow.Insert
ActiveCell.EntireRow.AutoFill
Destination:¬tiveCell.Rows("1:" & n + 1).EntireRow,
Type:= _
xlFillDefault
ActiveCell.Offset(n + 1).Select
Else
ActiveCell.Offset(1).Select
End If
Wend
End Sub

Camille


-----Message d'origine-----
Bonjour,
J'ai une source Excel avec une liste d'adresses que je


souhaite utiliser

dans word pour un publipostage d'étiquettes.
Je suis désemparée car je ne connais pas grand chose au


visual basic.

Le problème est que je voudrai automatiser la


transformation de ce fichier

source selon une variable. 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

Annie


.











Avatar
sabatier
camiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiille
qu'est-ce que tu as fait encore?
merci de répondre à annie car moi, je ne sais plus, sauf que peut-être
il faille deux points (:) après destination...
jps

Bru a écrit:
Oui c'était pour la première, mais le problème m'indique maintenant "Erreur
de compilation Attendu expression", en me surlignant le ":=" qui se trouve
juste après "Destination"
Le problème est que j'ai même pas l'aide vba (excel me demande le cd
d'installation que je ne trouve plus)
Avez vous une idée ?

merci
Annie

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

la ligne est rouge parce que la messagerie l'a coupée, je pense, annie
jps

Bru a écrit:

Merci beaucoup, il y a juste un petit problème au niveau de la ligne
ActiveCell.EntireRow.AutoFill, car j'ai un message "argument non
facultatif".
Et aussi au niveau de la ligne du dessous, il semble y avoir un problème


car


la ligne reste rouge.

Quelqu'un saurait il m'aider ?
merci
Annie

"Ellimac" a écrit dans le message


de


news:089901c3dc30$c0121fa0$
Bonjour,

Traitement à faire sur une copie du fichier dans un module
standard d'Excel :

Sub Toto()
Range("c2").Select
While ActiveCell <> ""
a = ActiveCell.Address
n = ActiveCell.Value
If n <> 1 Then
Range(ActiveCell.Offset(1), ActiveCell.Offset
(n)).EntireRow.Insert
ActiveCell.EntireRow.AutoFill
Destination:¬tiveCell.Rows("1:" & n + 1).EntireRow,
Type:= _
xlFillDefault
ActiveCell.Offset(n + 1).Select
Else
ActiveCell.Offset(1).Select
End If
Wend
End Sub

Camille



-----Message d'origine-----
Bonjour,
J'ai une source Excel avec une liste d'adresses que je


souhaite utiliser


dans word pour un publipostage d'étiquettes.
Je suis désemparée car je ne connais pas grand chose au


visual basic.


Le problème est que je voudrai automatiser la


transformation de ce fichier


source selon une variable. 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

Annie


.














Avatar
sabatier
essaie comme ceci, annie
jps
PS la ligne "range (activecell... se termine avec "insert"
la ligne Activecell.EntireRow....se termine avec "xlFillDefault"

sur ce, je retourne à Bastia/Monaco


Sub Toto()
Range("c2").Select
While ActiveCell <> ""
a = ActiveCell.Address
n = ActiveCell.Value
If n <> 1 Then
Range(ActiveCell.Offset(1), ActiveCell.Offset(n)).EntireRow.Insert
ActiveCell.EntireRow.AutoFill Destination= ActiveCell. _
Rows("1:" & n + 1).EntireRow , Type:=xlFillDefault
ActiveCell.Offset(n + 1).Select
Else
ActiveCell.Offset(1).Select
End If
Wend
End Sub


Bru a écrit:
Oui c'était pour la première, mais le problème m'indique maintenant "Erreur
de compilation Attendu expression", en me surlignant le ":=" qui se trouve
juste après "Destination"
Le problème est que j'ai même pas l'aide vba (excel me demande le cd
d'installation que je ne trouve plus)
Avez vous une idée ?

merci
Annie

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

la ligne est rouge parce que la messagerie l'a coupée, je pense, annie
jps

Bru a écrit:

Merci beaucoup, il y a juste un petit problème au niveau de la ligne
ActiveCell.EntireRow.AutoFill, car j'ai un message "argument non
facultatif".
Et aussi au niveau de la ligne du dessous, il semble y avoir un problème


car


la ligne reste rouge.

Quelqu'un saurait il m'aider ?
merci
Annie

"Ellimac" a écrit dans le message


de


news:089901c3dc30$c0121fa0$
Bonjour,

Traitement à faire sur une copie du fichier dans un module
standard d'Excel :

Sub Toto()
Range("c2").Select
While ActiveCell <> ""
a = ActiveCell.Address
n = ActiveCell.Value
If n <> 1 Then
Range(ActiveCell.Offset(1), ActiveCell.Offset
(n)).EntireRow.Insert
ActiveCell.EntireRow.AutoFill
Destination:¬tiveCell.Rows("1:" & n + 1).EntireRow,
Type:= _
xlFillDefault
ActiveCell.Offset(n + 1).Select
Else
ActiveCell.Offset(1).Select
End If
Wend
End Sub

Camille



-----Message d'origine-----
Bonjour,
J'ai une source Excel avec une liste d'adresses que je


souhaite utiliser


dans word pour un publipostage d'étiquettes.
Je suis désemparée car je ne connais pas grand chose au


visual basic.


Le problème est que je voudrai automatiser la


transformation de ce fichier


source selon une variable. 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

Annie


.