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 :

Récupérer valeur d'une cellule dans une boucle


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2018
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2018
    Messages : 116
    Par défaut Récupérer valeur d'une cellule dans une boucle
    Bonjour à tous,

    J'ai créé un code me permettant de renvoyer une chaine de caractère en fonction des couleurs de mes cellules.
    Lorsque les cellules sont bleues ça me renvoit un "-/" et lorsqu'elles sont grises ça me renvoit un "-X". Ces cas là sont ok mais
    lorsque mes cellules sont oranges, j'aimerais récupérer la valeur de la cellule concernée dans la boucle par le tiret et le chiffre présent à la fin (ex "-3").
    Je sais d'où vient mon erreur (du y1) puisque je n'arrive pas à récupérer la valeur de la cellule affectée dans la boucle...
    Quelqu'un peut-il m'aider ? je vous mets le fichier aussi

    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    Sub TEST()
    On Error Resume Next
     
    Dim DernLigne As Integer
    Dim cel As Range, rng As Range
    Dim y, y1
    Dim O&, G&, B&
     
    O = RGB(255, 200, 50): G = RGB(192, 192, 192): B = RGB(0, 150, 255)
     
    With Worksheets("Feuil1")
        .Range("B4").Interior.Color = O
        .Range("B5").Interior.Color = B
        .Range("B6").Interior.Color = G
        .Range("B7").Interior.Color = B
        .Range("B8").Interior.Color = O
        .Range("B9").Interior.Color = O
        .Range("B10").Interior.Color = G
        .Range("B11").Interior.Color = B
        .Range("B12").Interior.Color = O
     
    End With
     
    y = Left(Worksheets("Feuil1").Range("B4"), 4)
     
    DernLigne = Worksheets("Feuil1").Range("B65536").End(xlUp).Row
     
    Set rng = Worksheets("Feuil1").Range("B4:B" & DernLigne)
     
        Worksheets("Feuil1").Range("D5").Value = y
     
        For Each cel In rng
            If cel.Interior.Color = O Then
     
                    y1 = Mid(Worksheets("Feuil1").Range(cel).Value, 5)
     
                         Worksheets("Feuil1").Range("D5").Value = _
                             Worksheets("Feuil1").Range("D5").Value & y1
     
            ElseIf cel.Interior.Color = B Then
                Worksheets("Feuil1").Range("D5").Value = _
                    Worksheets("Feuil1").Range("D5").Value & "-/"
            ElseIf cel.Interior.Color = G Then
                Worksheets("Feuil1").Range("D5").Value = _
                    Worksheets("Feuil1").Range("D5").Value & "-X"
            End If
        Next cel
     
     
    End Sub
    Fichiers attachés Fichiers attachés

  2. #2
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par nivk-539 Voir le message
    Je sais d'où vient mon erreur (du y1) puisque je n'arrive pas à récupérer la valeur de la cellule affectée dans la boucle...
    Qu'est-ce qu'il se passe ?
    Message d'erreur ? Quel message ?
    Valeur incorrecte ? Quelle est la donnée source, la valeur souhaitée et la valeur obtenue ?

    Commence par supprimer le On Error Resume Next en début de code. Ce genre d'horreur empêche d'analyser les problèmes.
    Entre autre, ça t'a empêché de voir que tu ne mettais que deux paramètres à une fonction qui en demande trois.
    je vous mets le fichier aussi
    Beaucoup de participants de ce forum n'ouvrent pas les pièces jointes, surtout celles pouvant contenir des macros.

    lorsque mes cellules sont oranges, j'aimerais récupérer la valeur de la cellule concernée dans la boucle par le tiret et le chiffre présent à la fin (ex "-3").
    Par "chiffre présent à la fin", tu veux dire le caractère le plus à droite de la valeur contenue par la cellule ?
    Si c'est le cas, il serait plus simple d'utiliser Right() plutôt que Mid().

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Worksheets("Feuil1").Range("D5").Value = _
       Worksheets("Feuil1").Range("D5").Value & "-" & Right(cel.Text, 1)

  3. #3
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Bonjour

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     '....
       For Each Cel In Rng
            Select Case Cel.Interior.Color
                Case O: y1 = Mid(Cel, InStrRev(Cel, "-"))
                Case B: y1 = "-/"
                Case G: y1 = "-X"
            End Select
            'Cel.Offset(, 2) = Cel.Offset(, 2) & y1
            Cel.Offset(, 2) = y1
        Next Cel

  4. #4
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2018
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2018
    Messages : 116
    Par défaut
    Merci à vous 2 les 2 solutions marchent!

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

Discussions similaires

  1. [XL-2007] Copie d'image dans une cellule vers une cellule d'une autre feuille
    Par natsamfa dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 20/02/2017, 21h27
  2. Réponses: 2
    Dernier message: 29/07/2016, 16h49
  3. [Toutes versions] coller les données d'une plage d'une cellule dans une cellule d'une autre feuille[VBA]
    Par arthson dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 24/01/2012, 17h37
  4. [XL-2007] problème de codage en vba ("copie d'une partie d'une cellule dans une cellule vide")
    Par skipeemed dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 26/10/2010, 17h01
  5. [XL-2002] Macro de comparaison d'une cellule d'une feuille avec une cellule d'une autre feuille.
    Par steelydan dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 08/09/2010, 12h59

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