Excel Macro VBA: Vérifiez le contenu (presse-papier?) avant de coller

J'ai eu de sérieux problèmes avec le collage des données provenant de diverses sources dans Excel. Excel a tendance à essayer d'être intelligent, et fait toutes sortes de silly le formatage. Nous avons besoin des données sous forme de texte.

Le problème est que nous avons beaucoup d'utilisateurs, et beaucoup d'entre eux ne sont pas très expérimentés avec des ordinateurs, afin de leur demander d'utiliser le clic droit et "Coller Spécial" à chaque fois n'est pas une option.

J'ai trouvé une solution dans l'enregistrement d'une macro qui utilise la "collage Spécial" et "texte", et en remplaçant la combinaison de touches ctrl-v pour utiliser cette fonction. Il semblait fonctionner parfaitement, jusqu'à ce que j'ai marqué une cellule, copié et j'ai essayé de le coller. La macro s'est écrasé.

Donc ce que j'ai besoin est une fonction qui permet de vérifier si je suis en train de coller le texte copié, et ensuite utiliser cette ligne:

 ActiveSheet.PasteSpecial Format:="Text", Link:=False, DisplayAsIcon:= _
        False

Alors que si je suis coller a marqué cellule, je veux exécuter cette ligne (pour coller juste la valeur):

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

Je ne suis pas très expérimenté dans l'écriture de macros VBA pour Excel (et j'espère ne jamais avoir à l'être), donc si quelqu'un a quelques conseils, je lui en serais très reconnaissant.

OriginalL'auteur erikric | 2009-07-10