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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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
    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

  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
    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...

  7. #7
    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

  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
    Je vais tester les 2 solutions au moins pour comprendre

+ 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