IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

[VBA] Erreur dans Script Valeur de cellule en fonction d'une autre [Toutes versions]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Hydrobiologiste
    Inscrit en
    Octobre 2020
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Hydrobiologiste

    Informations forums :
    Inscription : Octobre 2020
    Messages : 5
    Par défaut [VBA] Erreur dans Script Valeur de cellule en fonction d'une autre
    Bonjour,
    Voila je vous explique j'ai un petit soucis avec une macro. Je souhaiterais faire inscrire un texte en fonction du contenu d'une cellule (qui contient du numérique). J'utilise d'habitude la macro ci-dessous pour me mettre de façon automatique des couleurs dans des cases. Je pensais pouvoir l'adapter pour qu'au lieu de couleur (C.interior). il me rentre du texte dans une cellule cible. C.value

    Pour vous expliquer simplement j'ai une valeur numérique en case V6 (qui est en de rares occasions du texte mais avec case else ça résout le problème) et je voudrais qu'en case V25 un texte apparaisse en fonction de la valeur de V6.
    Voici ma macro frelatée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    Sub test()
     
    Range("V6").Copy
    Range("F25").PasteSpecial Paste:=xlPasteValues
    Set rng = Range("F25")
    For Each C In rng
     valCel = C.Value
     If IsNumeric(valCel) Then
      Select Case valCel
        Case 0 To 2.9999
        C.Value = "Mauvais"
        Case 3 To 3.9999
      C.Value = "Médiocre"
        Case 4 To 5.9999
     C.Value = "Moyen"
        Case 6 To 7.9999
        C.Value = "Bon"
        Case 8 To 1000
        C.Value = "Très bon"
        Case Else
       C.Value = "Très bon"
      End Select
     End If
     
    Next
     
    End Sub

    Voila si quelqu'un a une idée de pourquoi ça capote.
    D'avance merci et bonne journée

    NB : j'ai testé de ne pas copier coller la valeur et de changer "C.value" par "Range("F25").value" mais ceci ne marche pas aussi

  2. #2
    Expert confirmé
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juillet 2016
    Messages
    3 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3 241
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Set rng = Range("F25")
    For Each C In rng
    Pourquoi faire une boucle sur 1 cellule?

    **************************************************************************************
    Pour faire ça, pas besoin de VBA, une simple formule suffit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(V6<3000;"Mauvais";SI(V6<4000;"Médiocre";SI(V6<5000;"Moyen";SI(V6<6000;"Bon";"Très bon"))))

    **************************************************************************************
    Sinon en VBA
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub test()
        Select Case Range("V6").Value
            Case Is < 3000
                Range("V25").Value = "Mauvais"
            Case Is < 4000
                Range("V25").Value = "Médiocre"
            Case Is < 6000
                Range("V25").Value = "Moyen"
            Case Is < 8000
                Range("V25").Value = "Bon"
        Case Else
            Range("V25").Value = "Très bon"
        End Select
    End Sub
    Cdlt

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Hydrobiologiste
    Inscrit en
    Octobre 2020
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Hydrobiologiste

    Informations forums :
    Inscription : Octobre 2020
    Messages : 5
    Par défaut
    Citation Envoyé par ARTURO83 Voir le message
    Bonjour,

    Pourquoi faire une boucle sur 1 cellule?
    C'est de la pure fainéantise je l'avoue. j'avais un script qui fonctionnait pour les couleurs sur plusieurs cases alors si je me suis dit que si je réduisais le range c'était certes lourd du fait de la boucle mais en théorie cela fonctionne. En tout cas, merci le script fonctionne.
    Merci encore.

    NB :Et passer par du vba me permet d'intégrer ceci à une autre macro pour faire d'une pierre deux coups.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Copier valeur de cellule en fonction d'une autre cellule
    Par Caroline0780 dans le forum Excel
    Réponses: 2
    Dernier message: 20/09/2017, 21h00
  2. Reprendre une valeur de cellule en fonction d'une autre
    Par mauriceguillier dans le forum Excel
    Réponses: 14
    Dernier message: 25/01/2014, 18h54
  3. [XL-97] Decaler la valeur d'une cellule en fonction d'une autre
    Par NulenExcel77 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 19/10/2011, 08h03
  4. Récupérer la valeur d'une cellule avec fonction sur une autre feuille
    Par rogerlette dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 14/09/2010, 12h38
  5. [XL-2007] Faire correspondre la valeur d'une cellule en fonction d'une autre
    Par manuseverine dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 28/08/2010, 17h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo