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 :

PasteSpecial échoue après la suppression de cellules ? [XL-2016]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2018
    Messages : 3
    Par défaut PasteSpecial échoue après la suppression de cellules ?
    Bonjour,

    J'ai un problème que j'ai isolé mais que je ne comprends pas.
    Je veux faire un copier-coller de cellules d'une feuille à l'autre. Pas de problème jusque là sauf que je voudrais vider la feuille destinataire avant de coller les cellules dedans.
    Voici le code que j'utilise :
    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
    Public Sub copyCells()
     
        Dim wsSource As Worksheet
        Set wsSource = Worksheets("feuille_source")
     
        Dim sourceRange As Range
        Set sourceRange = wsSource.Range("A1:OG14")
        sourceRange.Copy
     
        Dim wsDest As Worksheet
        Set wsDest = Worksheets("feuille_dest")
     
        'sans la ligne suivante, pas de soucis, mais la commande PasteSpecial échoue si je la décommente ?!!
        'wsDest.UsedRange.Delete
     
        Dim destRange As Range
        Set destRange = wsDest.Range("A1:OG14")
        destRange.PasteSpecial Paste:=xlPasteAll
        destRange.PasteSpecial Paste:=xlPasteColumnWidths
     
    End Sub
    Comme indiqué dans le code, si je supprime les cellules de la feuille avant de coller dedans, la commande PasteSpecial échoue...
    Pouvez-vous me dire pourquoi et comment réaliser ça d'une manière qui ne fasse pas planter le PasteSpecial ?

    Merci d'avance

  2. #2
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    tu copies une source et ensuite tu supprimes une destination .... de ce fait tu annules l'opération de copie et tu fais échouer le collage

    inverse l'étape de copie et de suppression ... et tu pourrais même effacer (.Clear) ta plage de destination plutôt que la supprimer

  3. #3
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Le Copy de Range correspond à un Ctrl+C sur Excel.
    Tu remarqueras que dans Excel, si tu fais un Ctrl+C puis que tu supprimes une ligne, la référence à coller (les pointillés autour de la cellule) disparait et tu ne peux pas coller.
    Copy de Range réagit de la même façon.

  4. #4
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2018
    Messages : 3
    Par défaut
    Merci beaucoup à vous deux !
    J'ignorais (et je ne trouves pas ça très intuitif d'ailleurs) que supprimer des cellules dans une feuille X annulait la copie d'un range dans la feuille Y.
    Tout est clair maintenant... que de temps perdu sur ce problème.

  5. #5
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par feranti Voir le message
    annulait la copie d'un range dans la feuille Y.
    La copie n'est pas celle de la feuille Y, c'est celle de TOUTE l'application Excel, voir même de tout Windows, vu que ce système d'exploitation n'a jamais su gérer en standard la mise en batch de copies multiples.

  6. #6
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2018
    Messages : 3
    Par défaut
    D'accord ! Donc par sécurité, au cas où on ait supprimé des cellules du range copié, Excel invalide la copie pour chaque opération de Delete, Clear, etc. Je comprends l'idée.
    Merci pour la précision.

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

Discussions similaires

  1. Réoganiser l'autoincrementation apres une suppression
    Par agur29 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 31/08/2007, 16h51
  2. Réponses: 6
    Dernier message: 25/07/2007, 15h37
  3. Réponses: 3
    Dernier message: 09/11/2006, 18h22
  4. Réponses: 1
    Dernier message: 06/11/2006, 16h29
  5. PB Mise a jour formulaire apres requete suppression
    Par stan314 dans le forum Access
    Réponses: 1
    Dernier message: 13/05/2006, 16h55

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