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 :

Plage de Range [XL-2016]


Sujet :

Macros et VBA Excel

  1. #1
    Membre éprouvé
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2017
    Messages
    1 291
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2017
    Messages : 1 291
    Par défaut Plage de Range
    Bonjour, j'ai cherché tout l'après midi et fait de multiples variantes sans détecter l'erreur...

    pourquoi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Workbooks(ficAdm).Sheets("Suivi").Range("B30") = Workbooks(ficAmine).Sheets("Suivi").Range("B5")
    marche bien et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Workbooks(ficAdm).Sheets("Suivi").Range("B30:M30") = Workbooks(ficAmine).Sheets("Suivi").Range("B5:M5")
    rien ne se passe (aucune copie des données)…

    je suis dubitatif ...

  2. #2
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 478
    Par défaut
    Et avec une syntaxe correcte ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbooks(ficAdm).Worksheets("Suivi").Range("B30:M30").Value = Workbooks(ficAmine).Worksheets("Suivi").Range("B5:M5").Value

  3. #3
    Membre éprouvé
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2017
    Messages
    1 291
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2017
    Messages : 1 291
    Par défaut
    Effectivement..

    j'ai été mal orienté par le fait que cela marche pour une seule cellule sans .value...

    par contre le forme disparait à la copie, je pense qu'il vaudrait mieux copier la ligne entière pour garder la mise en forme (couleur de fond), quelque chose comme cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Workbooks(ficAdm).Sheets("Suivi").Row(30).Value = Workbooks(ficAmine).Sheets("Suivi").Row(5).Value
    et pour plusieurs lignes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Workbooks(ficAdm).Sheets("Suivi").Row(30:40).Value = Workbooks(ficAmine).Sheets("Suivi").Row(5:15).Value
    reste la syntaxe...

  4. #4
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 478
    Par défaut
    Eh bien non, .Value ne prend en compte que la valeur de la ou des cellules !

    Pour copier le format dans son intégralité, le plus simple est de passer par le presse papier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    'copie des formats
    Workbooks(ficAmine).Worksheets("Suivi").Range("B5:M5").Copy
    Workbooks(ficAdm).Worksheets("Suivi").Range("B30:M30").PasteSpecial xlPasteFormats
    Application.CutCopyMode = False
    'copie des valeurs
    Workbooks(ficAdm).Worksheets("Suivi").Range("B30:M30").Value = Workbooks(ficAmine).Worksheets("Suivi").Range("B5:M5").Value

  5. #5
    Membre Expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 266
    Par défaut
    Bonjour,

    si tu veux conserver les formats il faut copier-coller :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbooks(ficAmine).Worksheets("Suivi").Range("B5:M5").Copy Workbooks(ficAdm).Worksheets("Suivi").Range("B30:M30")
    eric

  6. #6
    Membre éprouvé
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2017
    Messages
    1 291
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2017
    Messages : 1 291
    Par défaut
    Je vais tester les 2 solutions au moins pour comprendre

  7. #7
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 478
    Par défaut
    Citation Envoyé par eriiic Voir le message
    Bonjour,

    si tu veux conserver les formats il faut copier-coller :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbooks(ficAmine).Worksheets("Suivi").Range("B5:M5").Copy Workbooks(ficAdm).Worksheets("Suivi").Range("B30:M30")
    eric
    Bonjour Eric

    c'est effectivement beaucoup mieux que d'utiliser le presse papier, avec la canicule, mes neurones sont au ralenti !!!

    Dans le cas où il y aurait des formules, pour récupérer les valeurs et le formats le mieux est de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Workbooks(ficAmine).Worksheets("Suivi").Range("B5:M5").Copy Workbooks(ficAdm).Worksheets("Suivi").Range("B30:M30")
    Workbooks(ficAdm).Worksheets("Suivi").Range("B30:M30").Value = Workbooks(ficAmine).Worksheets("Suivi").Range("B5:M5").Value

  8. #8
    Membre éprouvé
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2017
    Messages
    1 291
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2017
    Messages : 1 291
    Par défaut
    Merci c'est parfait

    j'ai mis un peu de temps avant de réaliser que copy et .value = font la copie mais pas dans le même sens...

  9. #9
    Membre Expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 266
    Par défaut
    c'est effectivement beaucoup mieux que d'utiliser le presse papier, avec la canicule, mes neurones sont au ralenti !!!
    Bah, tu n'y es pour rien, il n'avait pas précisé :-)
    eric

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

Discussions similaires

  1. [XL-2003] Plage avec range et cells
    Par triaguae dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 01/09/2010, 08h01
  2. Réponses: 0
    Dernier message: 05/03/2009, 19h23
  3. Plage compliqué Range()
    Par koyot3 dans le forum VBA Access
    Réponses: 2
    Dernier message: 24/06/2008, 16h23
  4. Plage de données : Range vs Cells : Erreur 1004
    Par Secco dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 10/06/2008, 17h29
  5. Comment utiliser Range(cells(... pour indiquer une plage de cellules
    Par gerald57 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 29/05/2008, 10h35

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