Mode recopie

Bonsoir / jour à tous;

Je suis toujours dans un fichier, qui traine depuis un moment. mais bon c est pas grave

je cherche a recopier une formule mais celle ci s obstine à ne pas me faire une recopie incrementer.

Alors je peux me le taper à la paluche mais recopier pres de 10 000 fois le code m interesse pas.

Je prends toute les solutions pour ameliorer ma procedure.

Merci à tous.

cf mon fichier qui permet de comprendre le probleme.

14classeur11.xlsm (151.48 Ko)

Bonjour,

EricM38 a écrit :

cf mon fichier qui permet de comprendre le probleme

Le fichier le permet si bien qu'à mon avis on se fait tous des politesses depuis que tu as posté ton message: "Non, je vous en prie, vous étiez avant moi!" "Ah, mais je n'en ferai rien: honneur aux anciens!" "Si, si j'insiste et je n'en démordrai pas" etc... Bref, ça pourrait durer!

Que représente le '5' que tu as inscrit en L1 de la feuille "Publipostage", que tu recopies par formule dans ta feuille "recherche_multiple" ... pour en tester la valeur dans les formules de la feuille "Publipostage"

Pourquoi, dans la feuille "Publipostage", n'y a-t-il plus aucune valeur dans les colonnes A, C et E, à partir de la ligne 11

Sans en savoir plus, difficile de trouver LA solution ... jette tout de même un œil au fichier joint (on ne sait jamais que ça te donnerait des idées?):

  • j'ai concaténé les valeurs en colonne O de la feuille "recherche_multiple"
  • en feuille "Publipostage", en N1, P1, R1, T1 et V1, j'ai inscrit le même formule à chaque fois (seule la référence de la cellule de départ change)
  • sélectionne dans cette feuille, la plage N1:W2, prends la poignée de recopie et tire vers le bas

Le nombre 5 represente le nombre de colonne qu il me faut , la variable est de 1 à 5 pour le moment.

Avec ton code si je marque X (un chiffre) en L1 comment dois je re écrire ton code pour que mon X s applique.

Tout démarre à partir de la 11eme ligne car il y a un bandeau que je n ai pas mis pour raison de confidentialité.

Merci en tout cas pour ton code,

Bonne journée.

EricM38 a écrit :

Avec ton code si je marque X (un chiffre) en L1 comment dois je re écrire ton code pour que mon X s applique

Dans la formule proposée, il n'y a pas de lien avec le nombre renseigné en L1 ... Quoi, si un jour tu veux une sixième colonne, tu voudrais t'éviter la recopie de la formule en première ligne, sur une sixième colonne, avant de copier cette fois, la plage N1 à Y2 vers le bas!? Cette manipulation tu la ferais 2 fois par heure?

En tout état de cause, le nombre ne pourrait pas rester en L1 ... puisqu'il serait "écrasé" le jour où tu demanderas 7 colonnes!?

EricM38 a écrit :

Tout démarre à partir de la 11eme ligne car il y a un bandeau que je n ai pas mis pour raison de confidentialité.

Dans le fichier transmis, tout s'arrête en ligne 11, pour les 6 premières colonnes

Bref, un second essai, parce qu'il pleut ... Le nombre à renseigner figure en W1; les formules sont recopiées sur les colonnes de A à Q. Je te laisse adapter, si besoin.

j'adore merci beaucoup, je vais simplement l adapté a mes besoins.

Bonne journée / soirée

Salut Eric,

Salut U.Milité,

En "étudiant" ce fichier de publipostage, je me suis dit que ces formules étaient complètement inutiles puisqu'il suffisait de construire des étiquettes sur base de la BDD.

J'ai supprime la référence du nombre de colonnes dans 'PUBLIPOSTAGE' : elle se trouve déjà dans la BDD. Un seul endroit suffit pour une variable qui est prise en compte par la macro ci-dessous.

Donc, j'ai "configuré" 'PUBLIPOSTAGE' pour permettre le multi-ligne des cellules dont les colonnes sont auto-ajustées en fin de calcul.

Calcul qui se lance via le petit bouton rouge à la Curulis! 8) dans 'PUBLIPOSTAGE'.

Private Sub cmdGO_Click()
'
Dim tMulti
'
With Worksheets("MultiRec")
    iRow = .Range("B" & Rows.Count).End(xlUp).Row
    tMulti = .Range("B21:D" & iRow)
    iDiv = .[D19]
End With
'
Application.ScreenUpdating = False
'
iRow = Range("A" & Rows.Count).End(xlUp).Row
iCol = Cells(1, Columns.Count).End(xlToLeft).Column
sCol = Split(Columns(iCol).Address(ColumnAbsolute:=False), ":")(1)
Range("A1:" & sCol & iRow).ClearContents
For x = 1 To UBound(tMulti, 1)
    If x Mod iDiv = 1 Then iIdx1 = iIdx1 + 1
    iLig = -1 + (iIdx1 * 2)
    iCol = IIf(x Mod iDiv = 0, -1 + (2 * iDiv), -1 + (2 * (x Mod iDiv)))
    '
    iBx = tMulti(x, 1)
    iCx = tMulti(x, 2)
    iDx = tMulti(x, 3)
    Cells(iLig, iCol) = iBx & " " & iCx & Chr(10) & iDx
Next
'
Columns("A:Z").AutoFit
Application.ScreenUpdating = True
'
End Sub

Si mon interprétation du fichier est erronée, vous serez gentils de ne pas tirer sur le pianiste!

Bon travail!

A+

5publipostage.xlsm (62.25 Ko)
Rechercher des sujets similaires à "mode recopie"