Comment se positionner sur une ligne recherchée et modifier son contenu?

Bonjour à tous, j'espère que vous allez bien en ces temps de confinement.

J'ai besoin de votre aide sur le problème suivant :

< J'ai un userform qui me permet après saisi de générer une ligne dans un tableau au niveau de la feuille active. Du coup bah s'il y a une valeur (indice de recherche) déjà saisie sur le tableau, le programme doit la détecter et pouvoir se positionner sur cette ligne afin que la modification saisie par l'utilisateur s'applique sur cette ligne et non pas créer une nouvelle ligne et avoir pour une même valeur (indice de recherche) 2 lignes correspondantes (voir plus) >

Voilà pour le topo, en tous cas, ce que j'ai essayer de faire, et ça a marché avant, je ne sais pas pourquoi ça bloque maintenant, alors que la syntaxe me paraît correcte, c'est de :

' --------------------------------------------------------------------------------------------------------------------
' ------------------------------------ Vérification de la redondance des données -------------------------------------
' --------------------------------------------------------------------------------------------------------------------

    ' Détection de SI (IdSource, IdDepart et IdTronçon) sont déjà entrés
    Dim concaten As Variant
    Dim x As Integer

    If cbo_IdTronçon.Visible = True Then

        concaten = cbo_IdSource.Value & "." & cbo_IdDepart.Value & "." & cbo_IdTronçon.Value - 1 & "." & _
        cbo_IdTronçon.Value & "." & cbo_IdFL.Value
        MsgBox concaten
        If WorksheetFunction.CountIf(Range("F" & Range("A23") & ":S" & Range("A24")), concaten) = 1 Then
            WorksheetFunction.Index(Range("F" & Range("A23") & ":S" & Range("A24")), WorksheetFunction.Match(concaten, _ 
            Range("S" & Range("A23") & ":S" & Range("A24")), 0), 19).Select
            x = ActiveCell.Row
            MsgBox x
            Range("F" & x & ":S" & x) = ""
            x = ligne
        End If

    Else

        concaten = cbo_IdSource.Value & "." & cbo_IdDepart.Value & "." & cbo_DE.Value & "." & _
        cbo_A.Value & "." & cbo_IdFL.Value
        MsgBox concaten
        If WorksheetFunction.CountIf(Range("F" & Range("A23") & ":S" & Range("A24")), concaten) = 1 Then
            WorksheetFunction.Index(Range("F" & Range("A23") & ":S" & Range("A24")), WorksheetFunction.Match(concaten, _
            Range("S" & Range("A23") & ":S" & Range("A24")), 0), 19).Select
            x = ActiveCell.Row
            MsgBox x
            Range("F" & x & ":S" & x) = ""
            x = ligne
        End If

    End If

Ma valeur indice est une cellule qui se trouve au niveau de la colonne "S" est qui est en fait un concaténé de certaines cellules.

Voilà, j'aimerais que mon programme :

1. puisse trouver la valeur (au niveau de la colonne "S") au moment où l'utilisateur saisisse les valeurs de comparaison (ici : au niveaux des combobox IdSource, IdFL, IdDépart...) et qu'il

2.1. S'il ne trouve pas la valeur, aller enregistrer les valeurs au niveau de la dernière ligne vide

2.2. Mais s'il trouve la même valeur, qu'il aille se positionner sur ladite cellule au niveau de la colonne "S" et permettra la modification de la ligne allant de "F ligne" à "S ligne"

Merci d'avance de vos commentaires.

Je vous souhaite de passer une excellente journée.

MAJ : Erreur qui se produit sur la ligne

WorksheetFunction.Index(Range("F" & Range("A23") & ":S" & Range("A24")), WorksheetFunction.Match(concaten, Range("S" & Range("A23") & ":S" & Range("A24")), 0), 19).Select

Erreur d'exécution '1004' :

Impossible de lire la propriété Match de la classe WorksheetFunction.

Bonjour

Tu devrais joindre ton fichier, anonymisé au besoin...

Bye !

Bonsoir à tous,

Malheureusement, les données du fichier sont confidentielles. Je vais essayer d'avoir un fichier avec seulement la problématique rencontrée, n'empêche que j'ai copier ce que je trouvais utile à la solution au problème.

En tout cas merci pour vos efforts.

Ah aussi j'ai un nouveau message d'erreur :

Erreur d'exécution '1004' :

Impossible de lire la propriété Index de la classe WorksheetFunction.

Merci de m'aider sur ce blocage !

Bonjour Kim, bonjour gmb

Malheureusement, les données du fichier sont confidentielles. Je vais essayer d'avoir un fichier avec seulement la problématique rencontrée, n'empêche que j'ai copier ce que je trouvais utile à la solution au problème.

Merci de m'aider sur ce blocage !

Un fichier simplifié anonymisé est largement préférable ! indispensable même.


< J'ai un userform qui me permet après saisi de générer une ligne dans un tableau au niveau de la feuille active. Du coup bah s'il y a une valeur (indice de recherche) déjà saisie sur le tableau, le programme doit la détecter et pouvoir se positionner sur cette ligne afin que la modification saisie par l'utilisateur s'applique sur cette ligne et non pas créer une nouvelle ligne et avoir pour une même valeur (indice de recherche) 2 lignes correspondantes (voir plus) >

Autre solution générique ici : https://www.excel-pratique.com/fr/telechargements/utilitaires/excel-formulaire-no438

Rechercher des sujets similaires à "comment positionner ligne recherchee modifier contenu"