Microsoft 365 Position sur cellule

Electron24

XLDnaute Occasionnel
Bonjour le Forum,

En cherchant un peu partout sur le forum je n'ai pas trouvé ce que je recherche à savoir :

J'ai une liste déroulante dans la cellule A5 (Validation des données) comportant une liste de Pays
Dans les cellules F10 à F150 j'ai les pays
En sélectionnant un pays dans ma liste déroulante, je souhaiterai qu'excel se positionne sur la cellule correspondante à la sélection
(Ex: Sélection Belgique dans ma liste déroulante ça me positionne en F18
Merci d'avance pour votre aide
 

fanch55

XLDnaute Barbatruc
@dg62
Pour peaufiner, il faut bétonner ton intersect, ;)
sinon :
dg62.gif
 

fanch55

XLDnaute Barbatruc
Pas de problème.

Je vous signale quand même que mon code est plus court et fait le même travail,
mais de plus il s'adapte aussitôt si vous agrandissez la plage des pays ou que vous la déplaciez .;)

N'oubliez pas de marquer son post comme solution .... :)
 

Electron24

XLDnaute Occasionnel
Photo.jpg


VB:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo Message
Dim pays As String
Dim c As Range
Dim monpays As String
    
    If Not Application.Intersect(Target, Range("$EZ$5")) Is Nothing Then
        pays = Target.Value
    End If
    
    If Target.Address = "$EZ$5" Then Range(Range("$FA$1").Value).Select
'Else
'        MsgBox "valeur " & pays & " non trouvée"
'End If
  
    
    If pays = "" Then Exit Sub
    
    With Worksheets("CM 1930").Range("FB159:FB1500")

    Set c = .Find(pays, LookIn:=xlValues)
    If Not c Is Nothing Then
        monpays = c.Address
        ActiveWindow.ScrollRow = c.Row
        Range(monpays).Activate 'facultatif
    End If
    
    End With
    
Message:
        MsgBox "valeur " & pays & " non trouvée"

End Sub

Voici donc le projet presque final grace à vous.
Les essais ont été effectué sur une feuille à part d'ou le changement des adresses de cellules.
Il me reste la gestion des erreurs si le pays sélectionné n'est pas dans la plage FB150:FB1000
 

Electron24

XLDnaute Occasionnel
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim pays As String
Dim c As Range
Dim monpays As String
    If Not Application.Intersect(Target, Range("EZ5")) Is Nothing Then
     pays = Target.Value
    End If
    If pays = "" Then Exit Sub
  
With Worksheets("CM 1930").Range("F150:F1500")
  
    Set c = .Find(pays, LookIn:=xlValues)
    If Not c Is Nothing Then
     monpays = c.Address
     ActiveWindow.ScrollRow = c.Row
     Range(monpays).Activate 'facultatif
    Else
        MsgBox "Pays inexistant"
    End If
End With
End Sub
Voici le code tel que je l'ai réinscrit en ne changeant que les adresses des cellules
Dans les 2 cas, pays Présent ou pays absent j'ai le message "Pays inexistant"
 

Electron24

XLDnaute Occasionnel
J'ai revérifié plusieurs fois et le résultat est toujours pareil.
J’arrête pour aujourd'hui, je reprendrai demain avec plus de soin.
Merci pour l'avis du projet. Je me suis lancé dans la réalisation de la coupe du monde de foot depuis sa création en 1930 jusqu'à maintenant 2018 avec les joueurs (avec leur date de naissance pour avoir leur age), leur club d'origine, les buteurs, les buts (temps du but), les remplacements, les entraineurs les cartons jaunes, rouges.
Bonne soirée et encore merci
 

Discussions similaires

Statistiques des forums

Discussions
314 078
Messages
2 105 468
Membres
109 375
dernier inscrit
anderson2