VBA

Fermé
la pioche - 10 févr. 2009 à 18:11
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 - 11 févr. 2009 à 19:02
Bonjour,
je vous explique mon problème
ma procédure contient un select case qui fonctionne
problème:
j'aimerais savoir si il y a une formule pour récupérer l'emplacement sur lequel le select case s'est arrété
en effet je m'explique:
le select case s'arrète sur trottoir
A ce moment je récupère l'emplacement du mot trottoir sur mon classeur
et ensuite j'aimerais avoir un truc du genre
Emplacement + 2 colonne = quelque chose

merci

9 réponses

Utilisateur anonyme
10 févr. 2009 à 23:00
Bonjour,

ça donnerais quelque chose comme :

trottoir.Offset(0,2).Value

Lupin
0
Nan cela ne marche pas, VBA ne reconnait pas trottoir de cette facon.
VBA ne reconnait pas non plus Case "trottoir" sinon j'aurait crue faire quelque chose du style mais cela ne marche pas
Case "trottoir".Offset(0,2).Value =...

?
merci de ta réponse Lupin
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
11 févr. 2009 à 13:44
Bonjour,
peut-être avec..
ActiveCell.offset(0,2) = CeQueTuVeuxMettreDedans
Sinon donne plus de renseignement !
A+
0
nan cela ne marche pas
je vous montre ma procédure:
Tout d'abord l'emplacement du mot chaussée est variable et peut etre situé dans la plage de cellule essai1 qui s'étend de A1 a J1

1er cas:
Chaussée est en A1
Sub essai()
    Dim Cellule As Range
    For Each Cellule In Range("essai1")
        Select Case Cellule.Value							
            Case "Chaussée"										ici j'aimerais que lorsque mon select s'arrète sur ma case chaussée, je peux récupérer le nom de cette 												cellule (ex:A1)
                If Cells(7, 13) = "Trafic Normal GB3" Then						Ensuite pour les cases en rouge ce n'est q'un décaler d'une ligne 
            Cells(1, 1) = "2,5 cm BBTM + 4cm BBSG"						Explication: Chaussée est en A1 donc "2,5 cm BBTM + 4cm BBSG" sera en A2
                End If
                If Cells(7, 13) = "Trafic Fort GB3" Then							Cette procédure marche que si chaussée est en A1 mais si elle est en B1 cela ne fonctionne plus
                    Cells(1, 1) = "2,5 cm BBTM + 6cm BBSG"						(voir cas 2)
                End If											
                If Cells(7, 16) = "CF 1 Ep : 40cm" Then
                    Cells(2, 1) = "15 cm GNT 0/31,5mm + 25 cm GNT 0/80mm"
                End If
            Case "Caniveau"
                If Cells(8, 9) = "Trafic Normal EME2" Then
                 Cells(12, 9) = "eeee"
                 End If
        End Select
    Next
End Sub

2e cas:
Chaussée est en B1
Sub essai()
    Dim Cellule As Range
    For Each Cellule In Range("essai1")
        Select Case Cellule.Value							
            Case "Chaussée"										ici j'aimerais que lorsque mon select s'arrète sur ma case chaussée, je peux récupérer le nom de cette 												cellule (ex:B1)
                If Cells(7, 13) = "Trafic Normal GB3" Then						Ensuite pour les cases en rouge ce n'est q'un décaler d'une colonne
            Cells(1, 2) = "2,5 cm BBTM + 4cm BBSG"						Explication: Chaussée est en B1 donc "2,5 cm BBTM + 4cm BBSG" sera en B2
                End If
                If Cells(7, 13) = "Trafic Fort GB3" Then
                    Cells(1, 2) = "2,5 cm BBTM + 6cm BBSG"
                End If
                If Cells(7, 16) = "CF 1 Ep : 40cm" Then
                    Cells(2,2 ) = "15 cm GNT 0/31,5mm + 25 cm GNT 0/80mm"
                End If
            Case "Caniveau"
                If Cells(8, 9) = "Trafic Normal EME2" Then
                 Cells(12, 9) = "eeee"
                 End If
        End Select
    Next
End Sub
et ainsi de suite
0

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

Posez votre question
Dsl je galère avec la mise en page
<code>Tout d'abord l'emplacement du mot chaussée est variable et peut etre situé dans la plage de cellule essai1 qui s'étend de A1 a J1

1er cas:
Chaussée est en A1
Sub essai()
Dim Cellule As Range
For Each Cellule In Range("essai1")
Select Case Cellule.Value
Case "Chaussée"

'ici j'aimerais que lorsque mon select s'arrète sur ma case chaussée, je peux récupérer le nom de cette cellule (ex:A1)

If Cells(7, 13) = "Trafic Normal GB3" Then

'Ensuite pour les cases en italique ce n'est q'un décaler d'une ligne
fonction cherchée = "2,5 cm BBTM + 4cm BBSG"

'Explication: Chaussée est en A1 donc "2,5 cm BBTM + 4cm BBSG" sera en A2
End If

If Cells(7, 13) = "Trafic Fort GB3" Then
Cette procédure marche que si chaussée est en A1 mais si elle est en B1 cela ne fonctionne plus

fonction cherchée = "2,5 cm BBTM + 6cm BBSG"
End If
If Cells(7, 16) = "CF 1 Ep : 40cm" Then
fonction cherchée = "15 cm GNT 0/31,5mm + 25 cm GNT 0/80mm"
End If
Case "Caniveau"
If Cells(8, 9) = "Trafic Normal EME2" Then
fonction cherchée = "eeee"
End If
End Select
Next
End Sub
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
11 févr. 2009 à 18:40
Evidement je ne savais pas que tu avait une boucle Each
tu peu récupérer l'adresse et toutes autre données avec cellule
ex:
Ligne=Cellule.rows
Colonne = Cellule.Column
Adresse =Cellule.Address
etc..
Mais je ne comprens pas où tu veux rajouter des données ? C'est sur la même ligne ? ou autre ?
Tu dit que tu veux ajouter en ligne 7 si tu a B1 ?
Pour rappel: avec Cells c'est Cells(LIGNE,COLONNE) l'inverse du Range
0
merci je vais essayer
en faite, si le select case trouve chaussée et si en M7 j'ai par exemple "bonjour"
alors je veux qu'apparaisse deux lignes en dessous de la case chaussée "ca marche"

tu comprend?

merci a toi
0
cela marche pour colonne et adresse mais pas pour ligne

Ligne=Cellule.rows me renvoie la valeur de la cellule
0
cela marche en faite
merci beaucoup !
encore une fois d'une grande aide
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
11 févr. 2009 à 19:02
J'ai peut-être compris ?
If range("M7") = "Bonjour" then Cellule.Offset(2,0).value = "Ca marche"
0