VBA

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
Configuration: Windows XP
Firefox 3.0.6

9 réponses

  1. Contributeur
    J'ai peut-être compris ?
    If range("M7") = "Bonjour" then Cellule.Offset(2,0).value = "Ca marche"
    0
    1. cela marche pour colonne et adresse mais pas pour ligne

      Ligne=Cellule.rows me renvoie la valeur de la cellule
      0
      1. cela marche en faite
        merci beaucoup !
        encore une fois d'une grande aide
        0
    2. 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
      1. Contributeur
        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
        1. 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
          1. 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
            1. Contributeur
              Bonjour,
              peut-être avec..
              ActiveCell.offset(0,2) = CeQueTuVeuxMettreDedans
              Sinon donne plus de renseignement !
              A+
              0
              1. 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
                1. Bonjour,

                  ça donnerais quelque chose comme :

                  trottoir.Offset(0,2).Value

                  Lupin
                  0