Copier et coller à la suite

Fermé
Robski - 30 juin 2010 à 11:34
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 1 juil. 2010 à 10:49
Bonjour,

Je recherche à programmer une marcro sous excel avec deux boucles , une pour la designation du Range de la copie et l autre pour la designation du Range du collage.

Je m'explique:
J'ai deux Tableaux agencés de maniere differente.
Un (tableau1) est pour la présentation ,plus pratique, et l'autre (tableau2) sera plus long mais utilisé pour la programmation (filtre , recherche).

Je souhaite copier les données du tableau1 vers le tableau2.
Dans le tableau1 les données sont des Ranges selectionnés toutes les 3 lignes.
J effectue une transposition.
Je colle ces données transposées dans le tableau2 en selectionnant une case qui s íncremente à chaque fois de 54.
J aimerai que les champs se copie l un apres l autre en respectant l ordre suivant:
Copie tableau 1 -> transposition ->collage tableau2 -> Copie lignes +3 tableau1 -> transposition ->collage lignes +54 tableau2 ....

J'ai utilisé pour cela deux indices (i pour tableau1; j pour tableau2)mais je n arrive pas à imposer l ordre voullu à la prochaine incrementation.

Je vous met mon code en aide si cela peut vous aider à comprendre le probleme:

Dim i As Integer
Dim j As Integer

For i = 7 To 283 Step 3
Sheets("Beschaffungstapete_Übersicht").Select
Range(Cells(i, 4), Cells(i + 2, 57)).Select
Selection.Copy

'For j = 3 To 4971 Step 54
Sheets("Tabelle1").Select
Cells(3, 7).Select
Selection.PasteSpecial Paste:=xlPasteAllExceptBorders, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
Next i
'Next j

Un Grand merci à qui pourra m aider.
Car je suis dans une galere et j'ai déja pas mal ramè.
A voir également:

1 réponse

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
Modifié par michel_m le 30/06/2010 à 12:58
Bonjour

tites questions;

1/Tu tiens à exporter les formats dans ton tableau 2 (xlPasteAllExceptBorders) ou simplement les valeurs (tableau pour la programmation) ?

2/ a quoi sert J car tu utilises pas dans la boucle : je suppose qu'il s'agit des lignes mais...?

3/ tu parles de transposition; on aura donc un tableau de 51 lignes; c'est ça ?

4/ environ combien de lignes as tu dans le tableau 1 ?

mets un extrait de ton tableau 1 sur une 20taine de lignes sans données confidentielles sur
http://cijoint.fr/
et colle le lien proposer dans ton message

:-x
0
Bonjour,

Tout d'abord merci pour votre réponse rapide.

Je vais essayer répondre clairement à vos questions:

1- Je tiens à conserver la couleur des cellules sans les encadrés.et pas seulement la valeur.
2- Effectivement j n'est pas utilisé. je l ai cependant laisser car j avais pensé programmer avec deux boucles differentes i et j.
Cependant le programme bloque quand je met le next i avant le next j.

Et le cas ou next j se situe avant next j ne m e donne pas ce que je veux.

3-faux.
le tableau ci joint peut aider à comprendre.
dans mon tableau 1 j ai des sous groupes qui sont par groupe toute les 3 lignes.
C 'est ces sous groupes que je veut copier transposer et coller dans le tableau 2.
et cela doit s 'enchainer à'la suite l un de l autre.
dans mon tableau 2 chaque sous groupe est transposé toutes les 54 lignes.

4- j ai 285 lignes - les 6 premieres lignes de presentation , titre....

ci joint mon un cour exemple de mon tableau.
j ai remplacer les mots confidentiels par des chiffres.

Chaque sous -groupe est classer et reclasser selon 3 lignes (tableau 1) ou cologne (tableau2) :
Lieferant (fournisseur)
Standort(lieu)
Land(Pays)

merci d avance pour la reflexion.

ps: ci joint le lien:
http://www.cijoint.fr/cjlink.php?file=cj201006/cijlZXjkHh.xlsx
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
30 juin 2010 à 14:41
Ok, je repasserai en fin de pm ou demain am

D'ici la si quelqu'un a une solution...
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
30 juin 2010 à 15:21
en attendant; pas terrible mais ca a l'air de marcher

Sub essai0()
Dim i As Integer
Dim J As Integer

Application.ScreenUpdating = False
J = 3
For i = 7 To 283 Step 3
Sheets("Beschaffungstapete_Übersicht").Select
Range(Cells(i, 4), Cells(i + 2, 57)).Select
Selection.Copy


Sheets("Tabelle3").Select
Cells(J, 7).Select
Selection.PasteSpecial Paste:=xlPasteAllExceptBorders, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
J = J + 54
Next i
End Sub
0
Bonjour,

je recherche plutot l efficacité du code et cela marche parfaitement.
Donc grand Merci, Michel.

Juste pour comprendre :
J est alors juste une variable mqis qui nést pas utilisé dans un boucle (For To ...).
C'est une sorte de boucle cammouflée?

En tout Cas merci encore..

A+
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
Modifié par michel_m le 1/07/2010 à 10:50
Bonjour,
C'est une sorte de boucle cammouflée?
si tu veux
mais si tu veux frimer hi-tech: c'est une variable d'incrémentation en cascade
mais si
;-)
0