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 :

Fonction de collage VBA ne fonctionne pas [XL-2016]


Sujet :

Macros et VBA Excel

  1. #1
    Membre actif
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2014
    Messages
    294
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2014
    Messages : 294
    Points : 284
    Points
    284
    Par défaut Fonction de collage VBA ne fonctionne pas
    Bonjour à tous les lecteurs: N'état pas très connaisseur en matière de VBA une âme charitable pourrait'elle me corriger cette macro.

    Dans une 1ere feuille je sélectionne la plage de cellules à copier (jusque la tout vas bien) puis je colle les valeurs dans une autre feuille de mon choix (Ouverture boite de dialogue me demandant dans quelle feuille je veux copier les valeurs.

    Ci-joint le début de code qui est imparfait.

    Par avance merci pour votre aide.

    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
    24
    25
    26
    27
    28
    Sub Copier_selection_plage()
    '
    '
    Dim plage As Range
    Dim maplage As Variant
    Set plage = Application.InputBox("Cette application permet de copier une plage de cellules sélectionnée ,_" & Chr(10) & "_dans une autre plage de cellules." & Chr(10) & " " & Chr(10) & "Sélectionnez une plage !", "Sélection de cellules", Type:=8)
    For Each cel In plage
     
    n = Application.WorksheetFunction.CountIf(plage, cel)                    'vérifier la conformité
    If Application.WorksheetFunction.CountIf(plage, cel) > 1 And cel.Interior.Pattern = xlNone Then 'vérifier la conformité
     
    MsgBox ("Dans quelle feuille désirez vous copier vos valeurs ?" & chr10 & " sélectionnez la feuille de votre choix")
     
      Dim feuil
      Dim Copier_selection_plage As Variant
      Set feuil = Application.InputBox("Selectionnez ici la feuille de votre choix")
     
    'Jusqu'ici OK La fonction de collage ne fonctionne pas   
     
        'Selection.Copy ObjectsWithCells
        Sheets("Feuil2").Select
        Range("G3").Select
       Selection.CopyObjectsWithCells
     
         End If
    Next
    fin:
    End Sub

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 594
    Points : 34 263
    Points
    34 263
    Par défaut
    Salut,

    a premiere vue, il te manque le lien entre ta variable feuil que tu utilises pour le InputBox mais dont tu ne fais rien par la suite, hardcodant le Feuil2

    remplacer le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("Feuil2").Select
    en
    est une premiere étape.

    Je suis plus dubitatif sur ton ObjectsWithCells... Est-ce un essai ou une recopie d'un autre code ?

    Si tu veux effectuer une copie et un collage par valeur tu utiliseras plutôt :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets(feuil).Range("G3").PasteSpecial xlPasteValues
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Membre actif
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2014
    Messages
    294
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2014
    Messages : 294
    Points : 284
    Points
    284
    Par défaut
    Bonjour Jean-Philippe et merci d'avoir répondu à ma question. Pour être honnête ce sont des bouts de code que j'ai recopié pour les adapter à ce que je veux faire. Pour le "ObjectsWithCells" c'est plutôt un essais. Etant très mauvais en anglais c'est beaucoup plus difficile pour la compréhension de l'écriture et de la syntaxe.

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

Discussions similaires

  1. Une fonction sous Excel 2007 ne fonctionne pas sous Excel 2003
    Par Dryss51 dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 27/07/2007, 08h09
  2. La fonction eye (512*512) ne fonctionne pas
    Par Verboz dans le forum MATLAB
    Réponses: 6
    Dernier message: 01/03/2007, 00h26
  3. La fonction "source" de MySQL ne fonctionne pas
    Par muad'dib dans le forum JDBC
    Réponses: 14
    Dernier message: 15/01/2007, 17h25
  4. Fonction Quoted printable qui ne fonctionne pas.
    Par leCcsympas dans le forum C
    Réponses: 3
    Dernier message: 13/01/2007, 18h54
  5. fonctions remove et rename ne fonctionnent pas ?
    Par FamiDoo dans le forum MFC
    Réponses: 29
    Dernier message: 30/06/2006, 17h02

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