Aller au contenu
Warthrax

[Résolu] [VBA-Excel] Copier valeur sans les formules

Messages recommandés

Bonjour à tous,


Langage : VBA
Application : Excel
Objectif : Copier les valeurs d'une cellule sans la formule.

J'ai pour objectif de copier les valeurs d'un tableau pour ensuite que l'utilisateur puisse le coller à la main dans un autre fichier Excel. Mon problème étant que cette ligne de code ne copie pas la valeur mais le contenu de ma cellule (cad une formule)

ActiveWorkbook.Worksheets(1).Range("A1").Copy

J'ai fouillé sur le net une solution à mon problème, mais impossible de trouver. En effet, la seule solution proposé est le collage spéciale, ce qui ne m'interresse pas.

Auriez-vous une solution à mon problème ?

Cordialement,

Partager ce message


Lien à poster
Partager sur d’autres sites

Pierre13,

Ce procédé fonctionne si le coller se fait en VBA, c'est àdire si on "copie" et "colle" à travers une variable ou avec des otpions particulière comme Pastspecial. Dans mon cas, le coller doit être réalisé par l'utilisateur lui-même par un CTRL + V, et après modifier l'option collage pour passer en Collage spécial.

 

Mon but est que ce soit bien la VALEUR de la cellule qui soit COPIEE et non la FORMULE, et non le Collage qui colle que la valeur..

Partager ce message


Lien à poster
Partager sur d’autres sites

En attendant d'avoir une véritable solution, j'ai trouvé un moyen de "contourner" le problème de la façon suivante :

 

 

> Copier le tableau
> Collage special des valeurs dans un nouvel onglet
> Copie du tableau contenant que les valeurs.

 

Et le code est le suivant :

Sub selection_IncidentsSup()
    
    'nettoyage du tableau de reception des valeurs
    FdT_2 = ActiveWorkbook.Worksheets(2).Range("A65536").End(xlUp).Row
    ActiveWorkbook.Worksheets(2).Range("A1:B" & FdT_2).Clear

    'Calcul de la dernière ligne du tableau
    FdT = ActiveWorkbook.Worksheets(1).Range("A65536").End(xlUp).Row
    
    'Copy de de toute les données
    ActiveWorkbook.Worksheets(1).Range("A1:B" & FdT).Copy
    
    'Coller les données sans les formules
    ActiveWorkbook.Worksheets(2).Range("A1:B" & FdT).PasteSpecial Paste:=xlPasteValues
    
    'Copier uniquement les valeurs
    ActiveWorkbook.Worksheets(2).Range("A1:B" & FdT).Copy
    
    
End Sub

cette macro copie/colle les valeurs dans un nouvel onglet (préparé préalablement) puis copie de nouveau le tableau contenant que les valeurs. L'inconvenient est que je suis obligé de créer un onglet supplémentaire qui sert de tampon entre mes deux copier/coller et Copier.

 

L'utilisateur ne voulant pas que le procédé soit trop lourd (beaucoup de lignes, beaucoup de colonnes et en plus de ça il y a déjà beaucoup d'onglets dans le fichier), il continuera de faire un collage spécial à la main.

 

Cordialement,

Modifié par Warthrax

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant

×