IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

[VBA-E] Couper-coller


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2004
    Messages : 40
    Points : 22
    Points
    22
    Par défaut [VBA-E] Couper-coller
    Bonjour,

    J'essaie de faire la chose suivante:
    Dans une feuille Excel, à partir de la cellule 14 de la colonne A, couper le contenu de cette cellule, le coller 3 cellules plus bas, et recommencer avec un step 11 jusqu'à la millième ligne. J'ai écrit cela ainsi:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Sub Intervertir()
     
    For i = 14 To 1000 Step 11 ' pour i dont la valeur va de 14 à 1000,
                               ' toutes les 11 lignes
       Range("A & i" ).Select
       Selection.Cut
       Range("A & i + 3" ).Select
       ActiveSheet.Paste
       Next i 'incrémentation
     
    End Sub
    Ceci donne un message d'erreur 1004, objet Range non reconnu avec la méthode _global.
    J'ai également essayé une variante avec Offset, infructueuse elle aussi:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Sub Intervertir()
    For i = 14 To 1000 Step 11 ' pour i dont la valeur va de 14 à 1000, 
                               ' toutes les 11 lignes
    Range("A14" ).Select
    Selection.Cut Destination:=Selection.Offset(3, 0).Address
    Next i 'incrémentation
    End Sub
    Voici en somme l'action qui s'enregistre lorsque j'utilise le générateur de macro, et avec laquelle il faudrait faire une boucle:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    Sub Macro2()
     Range("A14" ).Select
    Selection.Cut
    Range("A17" ).Select
    ActiveSheet.Paste
    Range("A25" ).Select
    Selection.Cut
    Range("A28" ).Select
    ActiveSheet.Paste
    Range("A36" ).Select
    Selection.Cut
    Range("A39" ).Select
    ActiveSheet.Paste
    Etc juqu'à 1000
    End Sub
    Merci d'avance pour toute suggestion!!!

  2. #2
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Par habitude (quel que soit l'outil, y compris si je ne connais pas VBA) et par prudence, je traite systématiquement ce genre de problème de bas en haut et pas de haut en bas....afin d'éviter des écrasements éventuels)
    Si, maintenant, la millième ligne n'est pas la dernière, il faut également y penser.

  3. #3
    Membre éclairé
    Inscrit en
    Septembre 2005
    Messages
    617
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 617
    Points : 733
    Points
    733
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub Intervertir()
     
    For i = 14 To 1000 Step 11 ' pour i dont la valeur va de 14 à 1000, 
                               ' toutes les 11 lignes
       Range("A & i" ).Select
       Selection.Cut
       Range("A & i + 3" ).Select
       ActiveSheet.Paste
       Next i 'incrémentation
     
    End Sub
    Réfléchi bien a ce que te donne
    Ce ne serait pas plutot qqch comme ca que tu veux?

    ???

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2004
    Messages : 40
    Points : 22
    Points
    22
    Par défaut
    La solution trouvée en tatonnant un peu par hasard...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Sub Intervertir()
    For i = 8 To 1000 Step 11
        Cells(i, 1).EntireRow.Select
        Selection.Cut
        Cells(i + 3, 1).EntireRow.Select
        ActiveSheet.Paste
     
     
        Next i
     
        Call Suppression
     
    End Sub
    Merci pour les suggestions!

Discussions similaires

  1. [XL-2007] couper coller sous VBA
    Par felixcp dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 16/09/2011, 19h09
  2. [XL-2003] VBA : Comparer cellules + couper/coller lignes
    Par CedricBDO dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 02/08/2011, 09h22
  3. couper / coller vba excel
    Par avyrex dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 01/03/2008, 02h31
  4. [VBA]Couper coller dans un formulaire continu
    Par PhRey dans le forum VBA Access
    Réponses: 1
    Dernier message: 13/04/2007, 16h53
  5. [VBA-E] couper-coller graphique dans autre woorkbooks
    Par gigs dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 04/04/2006, 12h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo