Aide VBA récupérer une cellule

la pioche -  
lermite222 Messages postés 9042 Statut Contributeur -
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. Bidouilleu_R Messages postés 1209 Statut Membre 296
     
    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. la pioche
       
      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. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    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. la pioche
       
      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. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    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
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    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. la pioche
       
      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
  6. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    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