Augmenter la vitesse de recherche

Bonjour, j'ai des menu déroulants liées ou les infos je les récupères d'un fichier plus de 5000 lignes et des fois ça prend bcp de temps pour me récupérer la ligne voulu; y a t il une possibilité d augmmenter la rapidité de recherche marci

Bonjour

Trop vague pour répondre

Comment est ta liste?

Quel est le résultat de ta recherche?

Recherche par formules? Par VBA?

Cordialement

Le mieux est d'envoyer un fichier avec 50 ou 100 lignes

Cordialement

Le fichier contient 500 lignes et je récupère la ligne dans le menu déroulant , alors que quand la ligne 300 que je dois récupéré ça prend de temps et le formulaire est lent.

Private Sub ComboBoxCodeGDO_Change()
     Dim ligne As Range
Dim derlign As Long
If ok = True Then Exit Sub
ComboBoxCentre.Enabled = False
ComboBoxSiteOperationnel.Enabled = False
ComboBoxAgenceExploit.Enabled = False
ComboBoxNomDépartHTA.Enabled = False
ComboBoxNomPoste.Enabled = False
ComboBoxCodeDépartHTA.Enabled = False
ComboBoxPoleExploit.Enabled = False
ComboBoxPPI.Enabled = False
ComboBoxNomPosteSource.Enabled = False
ComboBoxCommune.Enabled = False
ComboBoxRéglagePréconisé.Enabled = False
  With Sheets("Registre départ PPI AFC")
    derlign = .Range("F" & .Rows.Count).End(xlUp).Row
    Set ligne = .Range("A3:AN" & derlign).Find(ComboBoxCodeGDO.Value)
    If Not ligne Is Nothing Then
      ok = True
    ComboBoxCodeDépartHTA.Value = .Range("C" & ligne.Row)
    ComboBoxCentre.Value = .Range("A" & ligne.Row)
    ComboBoxNomPosteSource.Value = .Range("B" & ligne.Row)
    ComboBoxPoleExploit.Value = .Range("E" & ligne.Row)
    ComboBoxPPI.Value = .Range("G" & ligne.Row)
    ComboBoxAgenceExploit.Value = .Range("AL" & ligne.Row)
    ComboBoxNomDépartHTA.Value = .Range("D" & ligne.Row)
    ComboBoxCodeGDO.Value = .Range("F" & ligne.Row)
    ComboBoxNomPoste.Value = .Range("I" & ligne.Row)
    ComboBoxCommune.Value = .Range("J" & ligne.Row)
    ComboBoxSiteOperationnel.Value = .Range("AK" & ligne.Row)
    ComboBoxRéglagePréconisé.Value = .Range("R" & ligne.Row)

Bonjour

Toujours pas de fichier pour tester..

Perso, n'étant pas un expert VBA, je ne peux pas grand chose sans test. Une chose pourtant me parait plus qu'évidente, c'est que cela fait beaucoup pour extraire les informations d'une ligne dans une base de données.

Avec une simple liste déroulante de validation dans une cellule et une formules ordinaire, le résultat est instantané.

Cordialement

le fichier est trop volumineux je ne peux pas le joindre, de coup j'ai une question si t peux m'apporter d'aide

j'ai un chiffre que je récupère par un menu déroulant d'un fichier excel, Dans le tableau source il y a marqué 5,84906, quand je saisi il prend pas encompte le virgule et il l'efface Dans le tableau de saisie il y a marqué 584 906 , Pourquoi ??

Bonjour

500 ou 5000 lignes n'empêchent rien.

Fais une copie de ton fichier, ne laisse que 10 ou 20 lignes dans ta base et envois le fichier ainsi allégé.

Pour ta nouvelle question, l'esprit reste le même, tu veux une réponse sur quelque chose que nous ne voyons pas. Nous resterons donc aux supposition. Par exemple la réponse serait: Parce que le format de nombre dans la cellule est différent.

Cordialement

pour la nouvelle question c'est réglé ,

25nouveau-dossier.zip (284.06 Ko)

Bonjour

Trop complexe pour mon niveau, place aux experts VBA.

Cordialement

Bonjour

Trop de code à vérifier et le peu de test que j'ai fait donne de bon résultat

Juste une idée à vérifier avec une base de données plus importante

Dans tes procédures tu testes si la variable Ok est True et dans ce cas tu quittes

Moi je placerai Ok = True juste après cette ligne, car là où tu l'as placé "bloque" les autres procédures seulement si tu as trouvé une concordance mais dans le cas contraire tu modifies aussi tes ComboBox

En reprenant ta macro cela donnerait

Ligne ajoutée

Ligne enlevée

Modification de tes Combobox au cas où aucune occurrence de trouvée

Private Sub ComboBoxCodeGDO_Change()
Dim ligne As Range
Dim derlign As Long

  If ok = True Then Exit Sub
  [surligner=#FFFF80]ok = True
  ComboBoxCentre.Enabled = False
  ComboBoxSiteOperationnel.Enabled = False
  ComboBoxAgenceExploit.Enabled = False
  ComboBoxNomDépartHTA.Enabled = False
  ComboBoxNomPoste.Enabled = False
  ComboBoxCodeDépartHTA.Enabled = False
  ComboBoxPoleExploit.Enabled = False
  ComboBoxPPI.Enabled = False
  ComboBoxNomPosteSource.Enabled = False
  ComboBoxCommune.Enabled = False
  ComboBoxRéglagePréconisé.Enabled = False
  With Sheets("Registre départ PPI AFC")
    derlign = .Range("F" & .Rows.Count).End(xlUp).Row
    Set ligne = .Range("A3:AN" & derlign).Find(ComboBoxCodeGDO.Value)
    If Not ligne Is Nothing Then
     [surligner=#BFFFFF]'ok = True
      ComboBoxCodeDépartHTA.Value = .Range("C" & ligne.Row)
      ComboBoxCentre.Value = .Range("A" & ligne.Row)
      ComboBoxNomPosteSource.Value = .Range("B" & ligne.Row)
      ComboBoxPoleExploit.Value = .Range("E" & ligne.Row)
      ComboBoxPPI.Value = .Range("G" & ligne.Row)
      ComboBoxAgenceExploit.Value = .Range("AL" & ligne.Row)
      ComboBoxNomDépartHTA.Value = .Range("D" & ligne.Row)
      ComboBoxCodeGDO.Value = .Range("F" & ligne.Row)
      ComboBoxNomPoste.Value = .Range("I" & ligne.Row)
      ComboBoxCommune.Value = .Range("J" & ligne.Row)
      ComboBoxSiteOperationnel.Value = .Range("AK" & ligne.Row)
      ComboBoxRéglagePréconisé.Value = .Range("R" & ligne.Row)
    Else
      ComboBoxCentre.Enabled = True
      ComboBoxSiteOperationnel.Enabled = True
      ComboBoxAgenceExploit.Enabled = True
      ComboBoxNomDépartHTA.Enabled = True
      ComboBoxNomPoste.Enabled = True
      ComboBoxCodeDépartHTA.Enabled = True
      ComboBoxPoleExploit.Enabled = True
      ComboBoxPPI.Enabled = True
      ComboBoxNomPosteSource.Enabled = True
      ComboBoxCommune.Enabled = True
      ComboBoxRéglagePréconisé.Enabled = True
      Me.ComboBoxNomDépartHTA = ""
      Me.ComboBoxCodeDépartHTA = ""
      Me.TextBoxNom = ""
      Me.ComboBoxPPI = ""
      Me.ComboBoxCentre = ""
      Me.ComboBoxAgenceExploit = ""
      Me.ComboBoxSiteOperationnel = ""
      Me.ComboBoxRéglagePréconisé = ""
      Me.ComboBoxPoleExploit = ""
      Me.ComboBoxNomPosteSource = ""
    End If
  End With
  ok = False
End Sub

A faire dans les autres procédures

MErci c'est beucoup mieu mais comment je peux faire une recherche d'une ligne selon deux critères comboboxcodeGDO et comboboxid car la je fais la rechercher selon comboboxCodeGDO mais j'en ai plusieurs lignes de m^me comboboxCodeGDO alors je récupère toujours la première ligne

Nouveau jour nouveau Bonjour

A tester mais dans ta page "Registre départ PPI AFC" il n'y a pas de doublon en colonne F

Merci . Oui c'est vrai mais je parle de macro Modification car je récupère toujours la m^me ligne, pouvez vous jeter un coup d'oeil pour savoir pourquoi ? car j'ai bien un doublon mais je récupère toujours la m^me ligne

Bonjour

Tu as 2 fois la même ligne dans la page "Registre PPI AFC apres visite" (même code GDO, même PPI de rang)

Supprimes une ligne

Car même la modification que je t'ai faite est inopérante dans ce cas

oui mais j'ai pas le m^mem numéro colonne AM . Alors le formulaire me récuopère juste la ligne 1 et pas la ligne 3

vous pouvez pas m'aider je bloque vraiment sur ce problème

Rechercher des sujets similaires à "augmenter vitesse recherche"