Répétition de macro sur chaque ligne

celvire4 Messages postés 14 Statut Membre -  
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

Je ne maîtrise pas du tout les macros, et pourtant c'est bien cela qu'il me faut pour résoudre mon problème.

J'ai un fichier avec 16 colonnes et 2111 lignes. Je dois travailler chaque ligne de la façon suivante :

Ligne 1, j'insère 11 lignes en dessous, je copie les cellules F1 à P1, je transpose en E2 et supprime F1 à P1

Voilà la macro qui me permet de faire cette manipulation 1 fois :

Sub Transpo()
'
' Transpo Macro
'
'
Application.CutCopyMode = False
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Range("F1:P1").Select
Selection.Copy
Range("E2").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
Range("F1:P1").Select
Application.CutCopyMode = False
Selection.ClearContents
End Sub

Je voudrais donc appliquer cette macro sur l'ensemble des 2111 lignes.

Et là mes compétences ne me le permettent pas pour le moment.

Merci pour vos réponses.

2 réponses

  1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Bonjour

    Dans ta macro, où insères tu ces 11 lignes ?
    doit 'on répéter cette insertion de 11 lignes 2111 fois soit znv. un tableau de 16*12*2111 soit env.405300 cellules...
    Et que veux tu copier après avoir supprimé F1:P1 ? F12:P12 ?

    Bon, suis peut-^tre mal réveillé mais...
    0
  2. celvire4 Messages postés 14 Statut Membre
     
    Bonjour Michel,

    J'insère les 11 lignes sous la ligne 1 (ce qui correspond au delta entre F et P) et transpose ensuite pour que les cellules F1 à P1 deviennent E2 à E13.

    Et cette insertion se répète 2111*11 lignes soit 23 221 lignes à la fin.

    Le tableau final comportera 23 221 lignes * 5 colonnes soit 116 105 cellules.

    Voici la "bonne" macro :
    Sub Transpo()
    '
    ' Transpo Macro
    '

    '
    Rows("2:12").Select
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    Range("F1:P1").Select
    Selection.Copy
    Range("E2").Select
    Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
    False, Transpose:=True
    Range("F1:P1").Select
    Application.CutCopyMode = False
    Selection.ClearContents
    End Sub

    Je voudrais renouveler cette opération en dessous de la ligne (non plus 2 car "Ligne 1"+11 Lignes = "Ligne 13") 13 et ainsi de suite...

    https://www.cjoint.com/?3ColQAuLRUU voici un visu du tableau.

    Je ne sais pas si cette explication est plus claire ?

    Merci
    0
    1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      Apparemment, oui ;o)

      Des problèmes de liaison (météo?) en ce moment chez moi

      Je regarde tout à l'heure
      0
    2. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      De retour et j'ai bien reçu le fichier, merci.

      Le problème est que tu m'as mis une image et ce que j'aimerais est d'avoir plutôt le classeur pour travailler "en réel" (sans ta première opération:au départ, il y avait-il des données dans F1:P1?)

      d'avance merci
      0
    3. celvire4 Messages postés 14 Statut Membre
       
      Merci, merci !

      J'ai extrait une toute petite partie du fichier sans modifications. Et oui, dans ma première opération, il y avait des données dans F1:P1.

      https://www.cjoint.com/?3CorXpxQT3o
      0
    4. celvire4 Messages postés 14 Statut Membre
       
      J'ai extrait une toute petite partie du fichier sans modifications. Et oui, sans ma première opération, il y avait des données dans F1:P1.
      0
    5. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      OK, bien reçu, merci

      Je trouverai un moment pendant le WE -j'ai une solution en t^te-, certainement dimanche pm, pour te proposer une macro (sinon ce serait sans doute le scrabble avec Tata- Adèle- qui- triche)
      0