Aide VBA récupérer une cellule

la pioche -  
lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   -
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

6 réponses

la pioche
 
personne ne peut m'aider!
0
Bidouilleu_R Messages postés 1181 Date d'inscription   Statut Membre Dernière intervention   295
 
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
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
lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
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
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
lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
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
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
lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
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