Changer la valeur d'une cellule en chiffre avec une macro

Résolu
Barahaoua Messages postés 89 Date d'inscription   Statut Membre Dernière intervention   -  
Barahaoua Messages postés 89 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour svp les amis j'ai une colonne ou j'ai des formule qui cherche une donné d'une autre feuille et ce que je voudrais svp c'est pouvoir sélectionner cette cellule et changer sa valeur en chiffre standard

j'ai fais cette macro mais le problème que je sais pas comment intégré la condition que je veux changer que la cellule que j'ai sélectionné
Dim Cellule As Range

'Parcourir les cellules de la plage utilisée
For Each Cellule In ActiveSheet.UsedRange
'Traiter uniquement les cellules possédant une formule
If Cellule.HasFormula Then
Cellule.Formula = Cellule.Value
End If
Next Cellule




MERCI

4 réponses

  1. melanie1324 Messages postés 1561 Statut Membre 156
     
    Bonjour,

    essaie ca :

    Dim Cellule As Range
    
    'Parcourir les cellules de la plage utilisée
    For Each Cellule In ActiveSheet.UsedRange
    'Traiter uniquement les cellules possédant une formule
    If Cellule.HasFormula Then
    Cellule.copy
    cellule.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
    End If
    Next Cellule
    0
    1. Barahaoua Messages postés 89 Date d'inscription   Statut Membre Dernière intervention  
       
      merci beaucoup melanie
      0
    2. Barahaoua Messages postés 89 Date d'inscription   Statut Membre Dernière intervention  
       
      Mélanie j'ai essayer la macro et ça marche bien sauf que il me change tous les formule de la colonne en valeur standard

      En faite je vais t'expliquer ce que je voudrais faire exactement s'il te plait

      actuellement je suis en cours de réalisation d'un outil de simulation ou j'ai :

      une feuille "Accueil" dans laquelle je veux entrés le une donnée dans la cellule D8 et une donnée dans la cellule D15 c'est donner je veux que je puisse cliquer sur un bouton et que la donnée que j'ai dans D8 sera coller dans la colonne C de la feuille "Commentaire" et la Donnée de D15 sera collé dans la colonne B de la feuille "Commentaire " une fois que j'ai fais ça ; j’exécute la macro de simulation qui agit sur la feuille "Usine" pour que la fin de la simulation , je vais avoir une donnée dans la cellule O4 de la feuille "Usine" et cette donnée je voudrai la coller sur la même ligne ou j'ai coller les premiére Données sur la feuille " Commentaire "

      a chaque enregistrement du fichier je veux que les données qui sont saisie dans les cellules de la feuille "Commentaire " reste et que si j'ai rentrés des nouvelles données et jai lancer une autre simulation ; les nouvelles informations seront enregistré dans la ligne suivante dans la feuille "commentaire"

      je vais te mettre stp le fichier en pièce jointe pour comprendre ce que je suis entrain de dire

      https://www.cjoint.com/c/FHkh2yLEgFh

      merci

      cordialement
      0
    3. melanie1324 Messages postés 1561 Statut Membre 156
       
      Bonjour,

      Là c'est plus clair.

      Et j'ai 2 solutions à te proposer

      Solution 1 : étape 1 copie des cellules, 2°°) appel de la macro, 3°) Copie de la feuille usine


      Sub copiecoller()
      'définition d'une variable
      i = 2
      'boucle qui va rechercher la première ligne disponible
      Do While Sheets("Commentaires").Cells(i, 2) <> ""
      i = i + 1
      Loop

      'les 2 lignes qui vont copier tes cellules
      Sheets("Accueil").Cells(8, 4).Copy Sheets("Commentaires").Cells(i, 3)
      Sheets("Accueil").Cells(15, 4).Copy Sheets("Commentaires").Cells(i, 2)

      'lancement de la macro nommée simulation
      call simulation 'tu remplaces simulation par le nom de ta macro

      sheets("Usine").cells(4,15).copy Sheets("Commentaires").Cells(i, 4)

      End Sub






      <gras>Solution 2 : étape 1 copie des cellules

      Sub copiecoller()
      'définition d'une variable
      i = 2
      'boucle qui va rechercher la première ligne disponible
      Do While Sheets("Commentaires").Cells(i, 2) <> ""
      i = i + 1
      Loop

      'les 2 lignes qui vont copier tes cellules
      Sheets("Accueil").Cells(8, 4).Copy Sheets("Commentaires").Cells(i, 3)
      Sheets("Accueil").Cells(15, 4).Copy Sheets("Commentaires").Cells(i, 2)

      End Sub


      là manuellement tu lances la macro simulation
      et tu ajoutes à la fin de la macro simulation :


      i = 2
      'boucle qui va rechercher la première ligne disponible
      Do While Sheets("Commentaires").Cells(i, 2) <> ""
      i = i + 1
      Loop


      sheets("Usine").cells(4,15).copy Sheets("Commentaires").Cells(i-1, 4)
      0
    4. Barahaoua Messages postés 89 Date d'inscription   Statut Membre Dernière intervention  
       
      merci Melanie je vais essayer ca maintenant merci beaucoup pour cette réponse rapide et efficace
      0
  2. Barahaoua Messages postés 89 Date d'inscription   Statut Membre Dernière intervention  
     


    Mélanie j'ai essayer le premier mais malheureusement il me récupère pas la valeur de O4 de la feuille" usine"
    regarde ce qu'il me fait

    merci
    je vais assayer maintenant les autres solutions
    0
    1. melanie1324 Messages postés 1561 Statut Membre 156
       
      Re,

      je regarde
      0
    2. melanie1324 Messages postés 1561 Statut Membre 156
       
      J'ai trouvé le problème et je l'ai corrigé :
      https://www.cjoint.com/c/FHkiQU5ShHi

      La macro se trouve dans module 1 et se nomme copier coller
      0
    3. Barahaoua Messages postés 89 Date d'inscription   Statut Membre Dernière intervention  
       
      Mélanie avec la deuxiéme solution aussi j'ai le même soucie sa m'affiche pas la valeur il m'affiche ça : #REF!
      0
    4. melanie1324 Messages postés 1561 Statut Membre 156
       
      ce fichier : https://www.cjoint.com/c/FHkiQU5ShHi

      car il faut modifier le code comme ca :

      i = 2
      'boucle qui va rechercher la première ligne disponible
      Do While Sheets("Commentaires").Cells(i, 2) <> ""
      i = i + 1
      Loop
      Sheets("Commentaires").Cells(i-1, 4) = sheets("Usine").cells(4,15).value
      0
  3. melanie1324 Messages postés 1561 Statut Membre 156
     
    Parce que tu n'as pas pris la dernière version et que tu n'as pas fait la modification indiquée.
    Essaie avec ce fichier stp :
    https://www.cjoint.com/c/FHkjeBqUSPi
    0
    1. Barahaoua Messages postés 89 Date d'inscription   Statut Membre Dernière intervention  
       
      Merci Mélanie ça marche très bien

      merci beaucoup pour ton aide et t'est réponses

      je te souhaite bon courage

      cordialement
      0
  4. Barahaoua Messages postés 89 Date d'inscription   Statut Membre Dernière intervention  
     
    c 'est bon merci Mélanie j'ai réussie a le faire
    0