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 :

Range avec plusieus blocs [XL-2016]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Secrétaire
    Inscrit en
    Avril 2020
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Secrétaire
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2020
    Messages : 57
    Par défaut Range avec plusieus blocs
    Bonjour,

    J'aimerai simplifier le code suivant en arrivant à faire un Range et un copier/coller
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    nmrdeb = Cells(4, 2).Value
    nmrfin = Cells(5, 2).Value   
     
    Worksheets(nomfeuil).Range(Worksheets(nomfeuil).Cells(nmrdeb, 9), Worksheets(nomfeuil).Cells(nmrfin, 12)).Copy
    Cells(15, 7).Select
    ActiveSheet.Paste
    Worksheets(nomfeuil).Range(Worksheets(nomfeuil).Cells(nmrdeb, 16), Worksheets(nomfeuil).Cells(nmrfin, 16)).Copy
    Cells(15, 11).Select
    ActiveSheet.Paste
    Worksheets(nomfeuil).Range(Worksheets(nomfeuil).Cells(nmrdeb, 20), Worksheets(nomfeuil).Cells(nmrfin, 20)).Copy
    Cells(15, 12).Select
    ActiveSheet.Paste
    Il me faudrait un code qui ressemble à ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Worksheets(nomfeuil).Range(Range(Worksheets(nomfeuil).Cells(nmrdeb, 9), Worksheets(nomfeuil).Cells(nmrfin, 12)), Range(Worksheets(nomfeuil).Cells(nmrdeb, 16), Worksheets(nomfeuil).Cells(nmrfin, 16)), Range(Worksheets(nomfeuil).Cells(nmrdeb, 20), Worksheets(nomfeuil).Cells(nmrfin, 20))).Copy
     Cells(15, 7).Select
    ActiveSheet.Paste
    Merci pour votre aide

  2. #2
    Membre émérite
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2022
    Messages
    685
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Octobre 2022
    Messages : 685
    Par défaut
    Bonjour,
    à ma connaissance non, ou alors l'astuce qui permettrait de le faire m'échappe pour l'instant.

    Tu peux déjà simplifier un peu comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    With Worksheets(nomfeuil)
        .Range(.Cells(nmrdeb, 9), .Cells(nmrfin, 12)).Copy
        ActiveSheet.Cells(15, 7).PasteSpecial xlPasteAll
        .Range(.Cells(nmrdeb, 16), .Cells(nmrfin, 16)).Copy
        ActiveSheet.Cells(15, 11).PasteSpecial xlPasteAll
        .Range(.Cells(nmrdeb, 20), .Cells(nmrfin, 20)).Copy
        ActiveSheet.Cells(15, 12).PasteSpecial xlPasteAll
    End With

  3. #3
    Membre confirmé
    Homme Profil pro
    Secrétaire
    Inscrit en
    Avril 2020
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Secrétaire
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2020
    Messages : 57
    Par défaut
    Merci, je vais déjà faire comme ça.

    Je posai la question car lorsque je fais un test manuellement en enregistrement de macro, cela donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Range("E15:H15,J15:K15,M15,O15:P15").Select
    Range("O15").Activate
    Selection.Copy
    Range("R15").Select
    ActiveSheet.Paste
    Alors je me suis dis qu'en mettant les blocs entre "," cela pourrai fonctionner...

  4. #4
    Membre émérite
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2022
    Messages
    685
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Octobre 2022
    Messages : 685
    Par défaut
    Re,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    With Worksheets(nomfeuil)
        Application.Intersect(.Range(nmrdeb & ":" & nmrfin), .Range("I:L, P:P, T:T")).Copy
        ActiveSheet.Cells(15, 7).PasteSpecial xlPasteAll
    End With

  5. #5
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 228
    Par défaut
    Hello,
    et avec une union ?
    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Union( _
     ActiveSheet.Range(ActiveSheet.Cells(5, 5), ActiveSheet.Cells(6, 6)), _
     ActiveSheet.Range(ActiveSheet.Cells(7, 7), ActiveSheet.Cells(8, 8)), _
     ActiveSheet.Range(ActiveSheet.Cells(9, 9), ActiveSheet.Cells(10, 10))).Select
    jusqu'à 30 arguments.

    Ami calmant, J.P

  6. #6
    Membre confirmé
    Homme Profil pro
    Secrétaire
    Inscrit en
    Avril 2020
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Secrétaire
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2020
    Messages : 57
    Par défaut
    Impeccable, cela fonctionne très bien
    Merci

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

Discussions similaires

  1. problème avec les blocs div
    Par polo42 dans le forum Mise en page CSS
    Réponses: 6
    Dernier message: 22/09/2006, 10h32
  2. Out of range avec un Vector
    Par snot224 dans le forum SL & STL
    Réponses: 8
    Dernier message: 05/07/2006, 23h26
  3. Mise en page avec 3 blocs
    Par kartben dans le forum Balisage (X)HTML et validation W3C
    Réponses: 11
    Dernier message: 10/05/2006, 13h17
  4. prob avec le bloc d'alimentation
    Par StyleXP dans le forum Composants
    Réponses: 7
    Dernier message: 08/01/2006, 12h47
  5. [VBA Excel] problème de range avec find
    Par loacast dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 23/11/2005, 13h56

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