Aide VBA récupérer une cellule

Bonjour,
je fais appel a vos connaissances car je voudrais récupérer la cellule sur lequel le select case s'est arrété
mon programme:
Sub essai()
Dim Cellule As Range
For Each Cellule In Range("essai1")
Select Case Cellule.Value
Case "Chaussée" 'exemple chaussée est en A1
If Cells(7, 13) = "Trafic Normal GB3" Then
A2= "2,5 cm BBTM + 4cm BBSG"
A3 = "2.5"
B2 = "Grave Bitume classe 3 0/14"
B3 = "9"
C2= "Grave Bitume classe 3 0/14"
C3 = "10"
End If
Case "Caniveau"
If Cells(8, 9) = "Trafic Normal EME2" Then
Cells(12, 9) = "eeee"
End If
End Select
Next
End Sub

Sub essai()
Dim Cellule As Range
For Each Cellule In Range("essai1")
Select Case Cellule.Value
Case "Chaussée" 'exemple chaussée est en M1
If Cells(7, 13) = "Trafic Normal GB3" Then
N2= "2,5 cm BBTM + 4cm BBSG"
N3 = "2.5"
O2 = "Grave Bitume classe 3 0/14"
O3 = "9"
P2= "Grave Bitume classe 3 0/14"
P3 = "10"
End If
Case "Caniveau"
If Cells(8, 9) = "Trafic Normal EME2" Then
Cells(12, 9) = "eeee"
End If
End Select
Next
End Sub

merci
Configuration: Windows XP
Firefox 3.0.5

6 réponses

  1. personne ne peut m'aider!
    0
    1. tu utilises une boucle for each
      ce qui signifie que toutes les cellules de la plage "essai1" seront parcourues

      donc la dernière infos affichée correspondra à la dernière données vrai renvoyée par le select case.

      et la dernière cellule parcourue est celle qui est en bas et à droite de la plage "essai1"
      0
      1. ok mais comment faire pour récupérer le nom de cette cellule c'est a dire A1 ou M1 pour pouvoir ensuite l'utiliser
        0
    2. Contributeur
      Bonjour,
      Il n'y a pas d'erreur dans ta macros. Certainement une erreur dans les libellés des texte, pour voir ce qu'il y a dedans ajoute 2 stop
      Et surtout indenter le code permet de mieux le visualiser.
      Sub essai()
      Dim Cellule As Range
          For Each Cellule In Range("essai1")
              Select Case Cellule.Value
              Case "Chaussée" 'exemple chaussée est en A1
                  Stop
                  If Cells(7, 13) = "Trafic Normal GB3" Then
                      A2 = "2,5 cm BBTM + 4cm BBSG"
                      A3 = "2.5"
                      B2 = "Grave Bitume classe 3 0/14"
                      B3 = "9"
                      C2 = "Grave Bitume classe 3 0/14"
                      C3 = "10"
                  End If
              Case "Caniveau"
                  Stop
                  If Cells(8, 9) = "Trafic Normal EME2" Then
                      Cells(12, 9) = "eeee"
                  End If
              End Select
          Next
      End Sub

      Quand c'est arréter sur un stop promener la souris au dessus des mots et normalement une bulle affiche ce qui est dedans, si pas, taper dans la fenêtre exécution
      par exemple:
      Print Cellule.Value
      ou encore
      Print Cells(7, 13)
      Tu dis..
      A+

      0
      1. nan mais en faite moi je recherche a récuperer la cellule sur lequel le select case s'est arrété et ensuite que cela me copie quelque chose sur les cellules situé en dessous de la cellule en question
        exemple:
        -cas 1
        le select case s'arrète sur chaussée qui est en A1
        alors A2 = "bonjour"
        -cas 2
        le select case s'arrète sur chaussée qui est cette fois ci en B1
        alors B2 =" bonjour"

        je suis désoler ce n'était pas vraiment clair auparavant
        merci
        0
    3. Contributeur
      Mais si, c'était parfaitement clair et ta macros fait ça parfaitement, c'est certainement une erreur au niveau des conditions, il arrive souvent qu'il y ai un espace supplémentaire ou en moins, ou majuscule/minuscule etc..
      C'est pour cela que je t'ai conseillé de mettre un stop ET DE REGARDER OU EST L'ERREUR.
      Si tu ne trouve pas, tu peu mettre ton classeur sur Cjoint.com et mettre le lien dans un poste suiva&nt.
      A+
      0
      1. Contributeur
        Hummm, sais pas où j'avais la tête quand je t'ai répondu...
        Sub essai()
        Dim Cellule As Range
            For Each Cellule In Range("essai1")
                Select Case Cellule.Value
                Case "Chaussée" 'exemple chaussée est en A1
                   ' Stop
                    If Cells(7, 13) = "Trafic Normal GB3" Then
                        Range("A2") = "2,5 cm BBTM + 4cm BBSG"
                        Range("A3") = "2.5"
                        Range("B2") = "Grave Bitume classe 3 0/14"
                        Range("B3") = "9"
                        Range("C2") = "Grave Bitume classe 3 0/14"
                        Range("C3") = "10"
                    End If
                Case "Caniveau"
                   ' Stop
                    If Cells(8, 9) = "Trafic Normal EME2" Then
                        Cells(12, 9) = "eeee"
                    End If
                End Select
            Next
        End Sub

        A+
        0
        1. merci a toi lermite222 de prendre un peu de ton temps.
          mais en faite le truck c'est que ma procédure fonctionne mais pas comme je voudrais
          en faite l'emplacement de la case chaussée est variable et je veux que cela recopie ceci
          en dessous de la case chaussée qui peut être en A1, B1 ou C1 .....

          "2.5"
          "Grave Bitume classe 3 0/14"
          "9"
          "Grave Bitume classe 3 0/14"
          "10"
          0
      2. Contributeur
        le plus simple, mettre un exemple de ton classeur sur Cjoint.com et mettre le lien sur un poste suivant (en xls Svp)
        A+
        0