VBA

la pioche -  
lermite222 Messages postés 9042 Statut Contributeur -
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. Utilisateur anonyme
     
    Bonjour,

    ça donnerais quelque chose comme :

    trottoir.Offset(0,2).Value

    Lupin
    0
  2. la pioche
     
    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
  3. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Bonjour,
    peut-être avec..
    ActiveCell.offset(0,2) = CeQueTuVeuxMettreDedans
    Sinon donne plus de renseignement !
    A+
    0
  4. la pioche
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. la pioche
     
    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
  7. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    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
  8. la pioche
     
    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
  9. la pioche
     
    cela marche pour colonne et adresse mais pas pour ligne

    Ligne=Cellule.rows me renvoie la valeur de la cellule
    0
    1. la pioche
       
      cela marche en faite
      merci beaucoup !
      encore une fois d'une grande aide
      0
  10. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    J'ai peut-être compris ?
    If range("M7") = "Bonjour" then Cellule.Offset(2,0).value = "Ca marche"
    0