Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Savoir si on a copié ou pas

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Magic_Doctor

XLDnaute Barbatruc
Supporter XLD
Bonjour,

Le titre peut paraître énigmatique.
Sur ma feuille j'ai 2 plages de cellules nommées.
Ce que je voulais faire :
Pouvoir remplacer le contenu de ces plages par d'autres valeurs copiées ailleur. On clique sur le bouton correspondant à chacune de ces plages et les nouvelles valeurs se substituent aux anciennes.
C'est apparemment simple, mais le problème est que le nombre de nouvelles valeurs peut être inférieur, égal ou supérieur à celui des anciennes valeurs. En fin d'opération, chaque plage de cellules redimensionnée reprend le même nom qu'initialement.
J'ai réglé le problème en bidouillant comme dab. En revanche, subsiste un dernier problème : si d'aventure on clique malencontreusement sur les boutons qui déclenchent la macro et que l'on n'ait rien copié au préalable --> big problème.
Ce que je voudrais, c'est en début de procédure de macro dire quelque chose du genre :
"si rien est copié, alors Exit sub"

Sur la PJ c'est je pense plus clair.

Merci d'avance pour tout conseil, et bonne fin de soirée à tous.
 

Pièces jointes

Re : Savoir si on a copié ou pas

Bonsoir Jacou,

J'y avais, en effet, pensé.
Le problème est qu'avant de coller les nouvelles données, il faut effacer les anciennes, au cas où la nouvelle liste soit plus courte que l'ancienne. Quand l'erreur est détectée, il est, disons, trop tard. Fatalement trop tard !Toutes les données de la colonne sont effacées à tout jamais. Vous rendez-vous compte, Jacou, à tout jamais, tout jamais...
Ne disposant pas des bidules pour enjoliver les posts (où sont-ils au fait ?), trève de plaisanterie.
En fait, je ne sais pas si c'est possible, mais peut-on trouver un moyen pour bloquer le bouton de la macro tant que quelque chose n'aura pas été copié auparavant ?

En tout cas merci de votre intervention.

J'en profite pour mettre une nouvelle PJ, qui s'ouvira mieux.
 

Pièces jointes

Dernière édition:
Re : Savoir si on a copié ou pas

Bonjour Magic_Doctor, Jacou,

Essayez à la place de "On error ....." l'instruction suivante :
Code:
If Application.CutCopyMode <> xlCopy Then Exit Sub

le code suivant ne suffirait-il pas ?
VB:
Sub CollerColonne(NomPlage As String)
  If Application.CutCopyMode <> xlCopy Then Exit Sub
  Application.ScreenUpdating = False
  Range(NomPlage) = "" 'on efface tout le contenu de la plage [NomPlage]
  Range(NomPlage)(1, 1).PasteSpecial Paste:=xlPasteValues 'on ne colle que les valeurs
  Selection.Name = NomPlage ' nom de la plage
  Application.CutCopyMode = False 'sinon zone copiée scintillante
  [az1].Select
End Sub
 
Dernière édition:
Re : Savoir si on a copié ou pas

Bonjour mapomme,

Super, ça marche parfaitement.
Vous avez tout à fait raison, j’ai tendance à faire compliqué. J’adopte votre simplification.

Excellente fin de semaine.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…