collage multiple en vba

lestards

XLDnaute Nouveau
bonjour

j ai un petit soucis de collage multiples

j ai un tableau dans lequel j ai 2 valeur la premiere est celle que je veux copier a espace régulier , la seconde est la quantité de copie a faire

merci d avance pour votre aide
 

Pièces jointes

  • etiquettes.zip
    5.5 KB · Affichages: 41
  • etiquettes.zip
    5.5 KB · Affichages: 43
  • etiquettes.zip
    5.5 KB · Affichages: 42
Dernière édition:

lestards

XLDnaute Nouveau
Re : collage multiple en vba

les données sont dans un tableau dans une feuille et je veux les copier dans une autre feuille pour en faire des etiquettes

comme
feuille 1 ................................................... feuille 2
A.....B..........................................................A
val |nbr
F1 | 3 ..................................................... F1
F2 | 1 ......................................................F1
PP2 | 2 ......................................................F1
....................................................................F1
....................................................................F2
....................................................................PP2

par contre pour le petit fichier sans donnée confidentielle je comprend pas
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : collage multiple en vba

Bonsoir

Si j'ai bien compris (en utilisant des Arrays )

Test avec 2 feuilles : en feuille 1 :
A1 = "VALEUR"
A2="F1" B2=2
A3= "F2" B3=3
A4="F3" B4=4

Résultats obtenus en feuille 2, en colonne A
F1
F1
F2
F2
F2
F3
F3
F3
F3
Code:
Sub Macro_ETIQ()
Dim t_Etiquettes, t_NB_Etiquettes, i As Long
t_Etiquettes = Application.Transpose(Sheets(1).Range("A2:A4").Value)
t_NB_Etiquettes = Application.Transpose(Sheets(1).Range("B2:B4").Value)
Sheets(2).Cells.ClearContents
For i = LBound(t_Etiquettes) To UBound(t_Etiquettes)
Sheets(2).Cells(65536, 1).End(xlUp)(2).Resize(t_NB_Etiquettes(i), 1) = t_Etiquettes(i)
Next
End Sub
 

lestards

XLDnaute Nouveau
Re : collage multiple en vba

tu as tres bien compris ce que j attendais de la macro
un grand merci !!!
reste juste a adapter le code pour un tableau de taille variable mais je pense pouvoir m en sortir mais si jamais tu as la solution je suis preneur!!!
encore merci pour le code !!
 

Staple1600

XLDnaute Barbatruc
Re : collage multiple en vba

Re



La solution était déjà là ;)
(en bleu les ajout/modif)

Code:
Sub Macro_ETIQ()
Dim t_Etiquettes, t_NB_Etiquettes, i As Long
t_Etiquettes = Application.Transpose(Sheets(1).Range("A2:[COLOR=Blue]A" & Sheets(1).[a65536].End(xlUp).Row)[/COLOR].Value)
t_NB_Etiquettes = Application.Transpose(Sheets(1).Range("B2:[COLOR=Blue]B" & Sheets(1).[b65536].End(xlUp).Row[/COLOR]).Value)
Sheets(2).Cells.ClearContents
For i = LBound(t_Etiquettes) To UBound(t_Etiquettes)
Sheets(2).[COLOR=Red]Cells(65536, 1).End(xlUp)[/COLOR](2).Resize(t_NB_Etiquettes(i), 1) = t_Etiquettes(i)
Next
End Sub
 

lestards

XLDnaute Nouveau
Re : collage multiple en vba

je suis desolé de revenir (faut savoir que je suis tres novice)
mais la je bloque!!

pour la macro trés bien, par contre a la fin de celle ci je me retrouve avec un message d erreur sur la derniere ligne (celle en bleu)
erreur execution '1004'
erreur definie par l application ou l objet


Dim t_Etiquettes, t_NB_Etiquettes, i As Long
t_Etiquettes = Application.Transpose(Sheets("FERMES").Range("A2:A" & Sheets("FERMES").[a65536].End(xlUp).Row).Value)
t_NB_Etiquettes = Application.Transpose(Sheets("FERMES").Range("B2:B" & Sheets("FERMES").[b65536].End(xlUp).Row).Value)
Sheets("ETIQUETTES").Cells.ClearContents
For i = LBound(t_Etiquettes) To UBound(t_Etiquettes)
Sheets("ETIQUETTES").Cells(65536, 1).End(xlUp)(2).Resize(t_NB_Etiquettes(i), 1) = t_Etiquettes(i)
Next

merci d avance pour votre aide
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : collage multiple en vba

Bonsoir



Tu as bien une feuille nommée ETIQUETTES dans ton classeur ?

Apparemment oui puisque
Sheets("ETIQUETTES").Cells.ClearContents ne bloque pas la macro

Tu peux joindre un fichier au format xls et non pas xlsx comme ta première pièce jointe, stp ?

Une question : j'ai reduti le début d e ton code ains
Code:
Sub classement()
Dim i As Long, ii As Long
With Sheets("Classement")
    .Rows("2:148").Delete Shift:=xlUp
    .Range("B2:B96,C2:C96,E2:E96,Z2:Z96").Value = _
    Sheets("TOTAL FINAL").Range("B2:B96,N2:N96,M2:M96,P2:P96").Value
    For i = 1 To 10
    .Cells(2, 5 + i).Resize(89).Value = Sheets(CStr("S3A" & i)).Range("E8").Resize(89).Value
    Next
        For ii = 1 To 10
        .Cells(2, 15 + ii).FormulaLocal = "=PETITE.VALEUR((F2:O2);" & ii & ")"
        Next
        .Range("P2:Y2").AutoFill Destination:=.Range("P2:Y97"), Type:=xlFillDefault
End With
'Copier les moyennes
'reste du code
End sub

Est-ce que ce code produit le résultat escompté par rapport au code initial ?
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : collage multiple en vba

Bonsoir


Pour tester la macro précédemment soumise, il faut la tester à part

et non à la fin d'un procédure éxistante (comme c'est le cas dans ton classeur)


Tu peux poster ici une version allégée (ne comportant que la feuille ETIQUETTES et FERME puisque seules concernée par cette macro)
 

lestards

XLDnaute Nouveau
Re : collage multiple en vba

bon me revoilà !!
alors j ai bossé la macro sur un autre classeur independant
et la j ai vu !! que en fait elle ne suivais pas le nom de la feuille (mem si j en change )
mais la position dans le classeur.
en gros les valeurs sont prise dans la feuille 1 et retranscrites dans la feuille 2 et si j insère une feuille entre les 2(soit la 1.5)c est elle qui recevras les valeurs
j espère que j ai réussi a me faire comprendre
donc je pense que je vais l utiliser comme elle est en faisant transiter temporairement les valeurs par un autre classeur que je fermerai après le triage
enfin merci beaucoup a toi de m avoir aidé!!
 

Discussions similaires

Réponses
15
Affichages
617

Statistiques des forums

Discussions
312 468
Messages
2 088 682
Membres
103 919
dernier inscrit
BOB66500