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 :

Coller une sélection multiple dans une nouvelle feuille, avec une disposition différente (en colonne)


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Septembre 2018
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur commercial

    Informations forums :
    Inscription : Septembre 2018
    Messages : 5
    Par défaut Coller une sélection multiple dans une nouvelle feuille, avec une disposition différente (en colonne)
    Bonsoir,

    Je voudrais écrire le code VBA pour effectuer la copie de la sélection Range("K2,D5,D6,D7,D8,D9,D10,H5,H6,H7,H8,H9,H10,H11,L5,L6,L7,L8,L9,C16").select et coller cette sélection sur une autre feuille et dans les cellules Range("B2:B21").select.

    Mon problème actuel est que c'est la dernière cellule, C16, qui se retrouve coller 20 fois dans la colonne B au lieu d'avoir K2 en B2, D5 en B3, ...

    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 Archiver()
     
    Dim Cell As Range, Plage As Range
     
    Sheets("Productions Végétales").Activate
    Set Plage = Range("K2,D5,D6,D7,D8,D9,D10,H5,H6,H7,H8,H9,H10,H11,L5,L6,L7,L8,L9,C16")
    For Each Cell In Plage
    Cell.Copy
    Sheets("Archives").Activate
    For n = 2 To 21
    Range("B" & n).Select
    ActiveSheet.Paste
    Next n
    Next Cell
     
    End Sub
    Le but est en fait d'archiver les réponses d'un formulaire.

    Merci pour vos contributions.

    Cordialement,

    Yoann.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par ybrasse Voir le message
    Bonjour,

    Essayez :
    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
     
    Sub Archiver()
     
    Dim Cell As Range, Plage As Range
    Dim I As Integer
     
        Set Plage = Sheets("Productions Végétales").Range("K2,D5,D6,D7,D8,D9,D10,H5,H6,H7,H8,H9,H10,H11,L5,L6,L7,L8,L9,C16")
        I = 1
        For Each Cell In Plage
            Cell.Copy Destination:=Sheets("Archives").Cells(I + 1, 2)
            I = I + 1
        Next Cell
        Set Plage = Nothing
     
    End Sub
    Sinon : Lorsque vous postez du code, sélectionnez le et cliquez sur le bouton # pour qu'il soit présenté comme mon code.

  3. #3
    Membre du Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Septembre 2018
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur commercial

    Informations forums :
    Inscription : Septembre 2018
    Messages : 5
    Par défaut
    Merci beaucoup.

    Cela fonctionne exactement comme demandé et ce fut très rapide.

    Yoann.

  4. #4
    Membre du Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Septembre 2018
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur commercial

    Informations forums :
    Inscription : Septembre 2018
    Messages : 5
    Par défaut Réciproque possible ?
    Bonjour,

    Est-il possible d'avoir un code permettant l'inverse, c'est à dire de reprendre les données archivées tout simplement en colonne et de les redispatcher dans la feuille d'origine aux emplacements bien spécifiques.
    Pour être totalement clair, d'avoir B2 en K2, B3 en D5, ...

    Merci d'avance.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par ybrasse Voir le message
    A tester :

    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
     
    Sub RemettreLesValeursArchivees()
     
    Dim Cell As Range, Plage As Range
    Dim I As Integer
     
        Set Plage = Sheets("Productions Végétales").Range("K2,D5,D6,D7,D8,D9,D10,H5,H6,H7,H8,H9,H10,H11,L5,L6,L7,L8,L9,C16")
        I = 1
        For Each Cell In Plage
            Cell = Sheets("Archives").Cells(I + 1, 2)
            I = I + 1
        Next Cell
        Set Plage = Nothing
     
    End Sub

  6. #6
    Membre du Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Septembre 2018
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur commercial

    Informations forums :
    Inscription : Septembre 2018
    Messages : 5
    Par défaut
    Oui, super, cela fonctionne parfaitement.

    Merci.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 20/08/2015, 12h00
  2. action sur une sélection multiple dans un DBGRID
    Par tarmo57 dans le forum Débuter
    Réponses: 3
    Dernier message: 09/09/2012, 14h16
  3. Intégrer une sélection multiple dans un mail
    Par djjero dans le forum Langage
    Réponses: 1
    Dernier message: 09/10/2008, 17h35
  4. Réponses: 1
    Dernier message: 30/10/2007, 16h30
  5. Réponses: 2
    Dernier message: 24/08/2006, 11h33

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