Aller au contenu


Photo
- - - - -

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


  • Veuillez vous connecter pour répondre
3 réponses à ce sujet

#1 Warthrax

Warthrax

    Member

  • Membres
  • 73 messages

Posté 05 octobre 2015 - 10:39

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,


  • 0

PUBLICITÉ

    Annonces Google

#2 Pierre13

Pierre13

    Godlike Member

  • Equipe Sécurité
  • 3 789 messages

Posté 05 octobre 2015 - 10:46

Bonjour,

 

Je ne connais pas le VBA, mais j'ai trouvé ceci :

Cells(1).Value = truc (inscrit la valeur de truc dans la cellule) et
truc = Cells(1).Value (affecte la valeur de la cellule à truc) 

Source Formation Excel VBA


  • 0

#3 Warthrax

Warthrax

    Member

  • Membres
  • 73 messages

Posté 05 octobre 2015 - 11:56

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..

 


  • 0

#4 Warthrax

Warthrax

    Member

  • Membres
  • 73 messages

Posté 05 octobre 2015 - 01:12

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, 05 octobre 2015 - 03:19 .

  • 0









Sujets similaires :     x