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 :

Syntaxe pour copier une plage mobile. [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Homme Profil pro
    Ex technicien Prévention Incendie
    Inscrit en
    Février 2009
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Ex technicien Prévention Incendie
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2009
    Messages : 156
    Points : 92
    Points
    92
    Par défaut Syntaxe pour copier une plage mobile.
    Bonjour à toutes et tous,
    J'ai un souci, vraisemblablement de syntaxe, pour sélectionner une plage mobile afin de la coller sur une autre feuille.
    Je m'explique, sur la feuille "Compilation" qui contient environ 1800 colonnes actives j'ai créé des pavés identiques "Activité1", "Activité2", etc jusqu’à "Activité60". Sur la 3ème colonne de chacun des pavé se trouve des commentaires (lignes 13 à 72), ce sont ces commentaires que je souhaites coller dans une autre feuille "Synthèse Activité" a partir de la cellule "N65". Et comme vous l'avez compris pour chaque pavé, l'adresse de la colonne recherchée change. J'ai donc "déclaré" l'integer "CTCom" (Colonne Transfert Commentaires) qui va donner le numéro de la colonne, j'ai vérifié il fonctionne.
    Voici mon code (Soyez indulgent s'il vous plait) .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        Range("N65").Select
            Sheets("Compilation").Cells(13, CTCom).Cells(72, CTCom).Select
                Selection.Copy
            Sheets("Synthese activité").Select
                ActiveSheet.Paste
    Pouvez vous me donner la bonne syntaxe ?
    Merci d'avance
    Thierry

  2. #2
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 203
    Points : 14 354
    Points
    14 354
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Dim C As Range
    With Sheets("Compilation")
        .Range(.Cells(13, ctcom), .Cells(72, ctcom)).Copy
    End With
    With Sheets("Synthese activité")
        .Select
        Set C = .Range("N65").End(xlDown)
        If C.Row = .Rows.Count Then
            .Range("N65").Select
        Else
            C.Select
        End If
        .Paste
    End With
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  3. #3
    Membre régulier
    Homme Profil pro
    Ex technicien Prévention Incendie
    Inscrit en
    Février 2009
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Ex technicien Prévention Incendie
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2009
    Messages : 156
    Points : 92
    Points
    92
    Par défaut Merci
    Bonjour Daniel et Merci.
    Ça fonctionne exactement comme je le voulais. Je vais faire tourner et également chercher à comprendre pour pouvoir le reproduire et l'adapter à de prochain besoins.
    Encore une fois Merci
    Thierry

  4. #4
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 203
    Points : 14 354
    Points
    14 354
    Par défaut
    Voici le code commenté. S'il y a quelque chose que tu ne comprends pas, dis-le.

    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
    17
    18
    19
    20
    21
    22
    23
    Dim C As Range
    'tous les noms commençant par "." se rattachent à "Sheets("Compilation")"
    With Sheets("Compilation")
        'copie de la plage
        .Range(.Cells(13, ctcom), .Cells(72, ctcom)).Copy
    End With
    'tous les noms commençant par "." se rattachent à "Sheets("Synthese activité")"
    With Sheets("Synthese activité")
        'sélection de la feuille
        .Select
        '"C" est la dernière cellule remplie
        Set C = .Range("N65").End(xlDown)
        'si N65 est vide, "C" représente la dernière cellule de la colonne
        'si c'est le cas, on sélectionne N65
        If C.Row = .Rows.Count Then
            .Range("N65").Select
        Else
            'sinon, on sélectionne la première cellule vide (la cellule sous la dernière cellule rempplie
            C.Offset(1).Select
        End If
        'on effectue le collage
        .Paste
    End With
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 21/11/2014, 12h07
  2. Syntaxe pour nommer une plage variable?
    Par Denis_67 dans le forum Excel
    Réponses: 4
    Dernier message: 04/05/2012, 20h45
  3. [XL-2007] copier une plage pour chaque jour du mois
    Par breiz56 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 26/12/2010, 22h21
  4. [VBA-E] pb pour copier une plage vers un autre repertoire
    Par alex.a dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 04/05/2007, 15h23
  5. pb syntaxe pour exporter une base
    Par azertyuiopp dans le forum Requêtes
    Réponses: 2
    Dernier message: 27/11/2005, 18h18

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