Positionner ligne adresse

Résolu
AlainOt Messages postés 9 Statut Membre -  
AlainOt Messages postés 9 Statut Membre -
Bonjour,

Je sèche...
J'ai un fichier adresse et cherche les villes, que j'arrive à selectionner.

Cependant le voudrais que la premiere adresse trouvé s'affiche en ligne A2 de ma liste avec la suite.

Ex : je tape "Tou" mon fichier ce positionne en A2 sur le premier élément "Tou" trouvé.

Merci de vous pencher sur mon problème

Cordialement

https://www.cjoint.com/c/KLglfK1NiV6

9 réponses

  1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    Bonjour ,

    en masquant les lignes;

    En vba à mettre dans le module de la feuille Liste tout en haut:

    Option Explicit
    Dim nom As String
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Application.Intersect(Target, Range("H3")) Is Nothing Then
    nom = Target.Value
    For_X_to_Next_Ligne
    End If
    End Sub
    Sub For_X_to_Next_Ligne()
    Dim FL1 As Worksheet, NoCol As Integer
    Dim NoLig As Long, Var As Variant
        Set FL1 = Worksheets("Liste")
        NoCol = 1 'lecture de la colonne A
        For NoLig = 1 To Split(FL1.UsedRange.Address, "$")(4)
            Var = FL1.Cells(NoLig, NoCol)
            If Var = nom Then
            Rows("2:" & NoLig - 1).EntireRow.Hidden = True 'masque lignes
            End If
        Next
        Set FL1 = Nothing
    End Sub
    Sub afficher() 'associer à un bouton ou raccourci clavier
    Cells.EntireRow.Hidden = False 'affiche lignes
    End Sub

    0
  2. AlainOt Messages postés 9 Statut Membre
     
    Bonsoir,

    Bien reçu, j'ai fais un copie/collé dans un module activé par un bouton "Afficher"
    Cependant rien ne se passe
    La macro tourne et rien?

    Je suis novice en VBA

    Pour compléter mon explication j'avais trouver une solution par 2 lien Hypertexte

    En "I1"
    ADRESSE(EQUIV(H3;A2:A500;0)+1;1)

    En "J1"
    Lien qui me descendais cellule A1000

    En "H1"
    SI($H$3<>"";LIEN_HYPERTEXTE("#"&$I$1);$A$1)
    qui remontait sur la cellule recherchée

    J'ai chercher à lier les deux lien mais pas facile en VBA

    Merci de regarder mon problème que je souhaitait effectuer en un clic

    Je reste à ton écoute

    Je prends toutes solutions

    Merci
    A+
    0
  3. AlainOt Messages postés 9 Statut Membre
     
    Re Bonsoir

    J'ai trouvé pour ta macro super je saisie ma recherche, je valide et on masque les éléments précédents
    donc je suis bien sur le premier élément trouvé.
    Mais,
    Pour revenir à l'ensemble des éléments ? je dois demander à Excel de m'afficher les éléments précédents.

    Celà répond partiellement car je dois pouvoiir consulter l'ensemble des du fichier.
    Merci de ta réponse
    A+
    0
  4. AlainOt Messages postés 9 Statut Membre
     
    Encore moi,

    Si je tape une ville inconnue la macro boucle et plante ligne 855

    SI tu peux tester.

    Merci encore

    Bonne soirée
    0
    1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
       
      Pour revenir à l'ensemble des éléments ?

      Sub afficher() 'associer à un bouton ou raccourci clavier
      Cells.EntireRow.Hidden = False 'affiche lignes
      End Sub


      Si je tape une ville inconnue la macro boucle et plante ligne 855


      modifier cette macro, comme ceci:

      Sub For_X_to_Next_Ligne()
      Dim FL1 As Worksheet, NoCol As Integer
      Dim NoLig As Long, Var As Variant
          Set FL1 = Worksheets("Liste")
          NoCol = 1 'lecture de la colonne A
          For NoLig = 1 To Split(FL1.UsedRange.Address, "$")(4)
              Var = FL1.Cells(NoLig, NoCol)
              If Var = nom Then
              Rows("2:" & NoLig - 1).EntireRow.Hidden = True 'masque lignes
              Else
              MsgBox "Nom inconnu!", vbCritical, "Recherche"
              Exit Sub
              End If
          Next
          Set FL1 = Nothing
      End Sub


      @+
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. AlainOt Messages postés 9 Statut Membre
     
    Super on avance
    Cependant systematique j'ai le message d'erreur
    un "X recherche inconnue"
    Alors que la recherche est valide
    0
    1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
       
      Pour l'heure je ne vois pas. Supprimer la modification
      0
  7. AlainOt Messages postés 9 Statut Membre
     
    Ok Pas de problème

    Passes une bonne soirée

    Merci encore de ton intervention

    Demain est un autre Jour

    Bye
    0
    1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
       
      Essaie ceci:

      Sub For_X_to_Next_Ligne()
      Dim FL1 As Worksheet, NoCol As Integer
      Dim NoLig As Long, Var As Variant
          Set FL1 = Worksheets("Liste")
          NoCol = 1 'lecture de la colonne A
          On Error Resume Next
          For NoLig = 1 To Split(FL1.UsedRange.Address, "$")(4)
              Var = FL1.Cells(NoLig, NoCol)
              If Var = nom Then
              Rows("2:" & NoLig - 1).EntireRow.Hidden = True 'masque lignes
              End If
          Next
          Set FL1 = Nothing
      End Sub


      @+
      0
  8. AlainOt Messages postés 9 Statut Membre
     
    Bonjour

    Tout fonction bien sauf si je tape une ville non connu

    La macro boucle... jusqu'a la igne 855
    0
    1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
       
      comme ceci:

      Sub For_X_to_Next_Ligne()
      Dim FL1 As Worksheet, NoCol As Integer
      Dim NoLig As Long, Var As Variant
          Set FL1 = Worksheets("Liste")
          NoCol = 1 'lecture de la colonne A
          Application.ScreenUpdating = False
          On Error Resume Next
          For NoLig = 1 To Split(FL1.UsedRange.Address, "$")(4)
              Var = FL1.Cells(NoLig, NoCol)
              If Var = nom Then
              Rows("2:" & NoLig - 1).EntireRow.Hidden = True 'masque lignes
              If NoLig = 100 Then Exit For ' a adapter
              End If
          Next
          Set FL1 = Nothing
          Application.ScreenUpdating = True
      End Sub


      a la place de 100, tu peux mettre la dernière ligne utilisée:

      https://excel-malin.com/tutoriels/vba-tutoriels/vba-trouver-la-derniere-cellule-utilisee/

      Dim derligne As Long
      derligne = Cells(Rows.Count, "A").End(xlUp).Row



      @+
      0
  9. AlainOt Messages postés 9 Statut Membre
     
    Excuses-moi de te répondre si tard

    Sur une ville inconue

    La macro efface une centaine de ligne
    Un message de debogage
    Erreur d'executiion7
    Mémoire insuffisante
    Ligne
    nom = Target.Value

    De plus les lignes avant 100 ne sont pas affichées
    Je dois faire un "affiche"

    Avec ton nouveau Dim derligne.....
    le programme s'arret sur (x1Up)
    0
  10. AlainOt Messages postés 9 Statut Membre
     
    Effectivement ça fonctionne
    Sur tes conseilles, je vois pour me repositionner sur la dernière cellule utilisé

    Je te remercie de ton travailles celà me fait gagner du temps

    Sur ce site je ne vos pas de coche "problème résolu"

    Bonne soirée

    Très cordialement

    AlainOt
    0