Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Nouveau membre du Club
    Remplacer une ligne dans une feuille si elle existe déja lors de sauvegarde.
    Bonjour,

    je sauvegarde la valeur des textbox et combobox dans une feuille.

    j'aimerai que on ne puisse pas sauvegarder plusieurs fois la même ligne, vérifier si la ligne existe déjà dans la feuille, si oui alors on remplace son contenu.

    Merci de l'aide

  2. #2
    Modérateur

    Bonjour.

    As-tu un identifiant unique qui permette de retrouver cet élément ?

    Si oui, une méthode simple est d'utiliser le RECHERCHEV (VLOOKUP). Si tu ne récupère pas #N/A, c'est que l'élément existe déjà.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Nouveau membre du Club
    Citation Envoyé par marot_r Voir le message
    Bonjour.

    As-tu un identifiant unique qui permette de retrouver cet élément ?

    Si oui, une méthode simple est d'utiliser le RECHERCHEV (VLOOKUP). Si tu ne récupère pas #N/A, c'est que l'élément existe déjà.

    A+
    oui, j'arrive à trouvé la ligne dans la faucille et la sélectionné, mais je ne sais pas comment faire pour remplacer le contenu ancien par le nouveau contenue.

    j'ai mis le fichier en exemple, j'ai laissé le ????? ou je dois mettre qqch pour que ça fonctionne.

    le fichier enregistre avec le bouton "Save".



    Merci d'aide.

  4. #4
    Modérateur

    Bonjour.

    Pardon j'avais manqué l'étape "remplacer".

    Avec EQUIV() (MATCH()), tu peux trouver la ligne qui correspond à la recherche et après le remplacement devrait être assez simple.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  5. #5
    Nouveau membre du Club
    c'est le remplacement que je n'arrive pas à faire.

    je ne sais pas si tu as essayé mon fichier d'exemple, il faut enregistré une 1ere fois, et ensuite si t clique une 2ème fois sur le bouotn Save Data, alors il trouve la ligne et sélectionne, mais je n'arrive pas à remplacer le contenue.

    je cherche avec la méthode Find.

    il faut essayé à pas à pas.

    merci

  6. #6
    Modérateur

    Bonjour.

    Non je n'ai pas essayé ton fichier car pour des raisons de sécurité je ne peux pas le télécharger.

    Peux-tu poster ton code actuel ?

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  7. #7
    Nouveau membre du Club
    le voici le code:

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    Private Sub CommandButton_SaveData_Click()
     
      Dim I As Long, Plage, Fnd As Range, Ligne, test, test2 As Long, Nom As String
      Dim Ctrl As Control
     
      Application.DisplayAlerts = False
     
        If MsgBox("Are you sure you want to save your changes?", vbYesNo, "Confirmation request") = vbYes Then
            With Sheets("Param") ' charge les param?tre
                Set Plage = .Range("A1", .Cells(.Rows.Count, 1).End(xlUp))
            End With
     
            With Sheets("DB Application")
            Sheets("DB Application").Select
                Ligne = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
                ' cherche la val dans la colonne A
                Set Fnd = .Range("A3", .Cells(Rows.Count, "A").End(xlUp)).Find( _
                What:=Me.TextBox_EquipementSAP.Value, LookIn:=xlValues, LookAt:=xlWhole, SearchDirection:=xlPrevious)
     
                If Not Fnd Is Nothing Then  ' si trouve la ligne d?ja enregistr?
     
                    For I = 1 To 89     ' travaille sur les colonne 1 ? 89
                        Nom = Plage(I).Offset(, 1)
                        If Nom <> "" Then
                            If TypeName(Me.Controls(Nom)) = "CheckBox" Then ' si checkbox activer
                                If Me.Controls(Nom).Value = True Then
                                    Fnd.EntireRow.Select
                                    test2 = .Cells(Ligne, I) = "YES"
                                    ?????.Replace What:=?????, Replacement:=???'
                                End If
                            Else
                                Fnd.EntireRow.Select
                                test = Me.Controls(Nom).Value
                                ?????.Replace What:=?????, Replacement:=???'
                            End If
                        End If
                    Next I
     
                Else    ' si ?lement n'est pas encore enregistr?
                    For I = 1 To 89
                        Nom = Plage(I).Offset(, 1)
                        If Nom <> "" Then
                            If TypeName(Me.Controls(Nom)) = "CheckBox" Then
                                If Me.Controls(Nom).Value = True Then
                                    .Cells(Ligne, I) = "YES"
                                End If
                            Else
                                .Cells(Ligne, I) = Me.Controls(Nom).Value
                            End If
                        End If
                    Next I
                 End If
            End With
        End If
        Application.DisplayAlerts = True
    End Sub


    Merci

  8. #8
    Modérateur

    Bonjour.

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    ?????.Replace What:=?????, Replacement:=???'


    Tu as utilisé Replace. Souhaites-tu substituer une partie de l'information présente par une autre ?

    Parce sinon, si tu veux changer la valeur entière, il suffit d'assigner la nouvelle valeur dans la cellule et cela va la mettre à jour.

    Peut-être devrait décrire sommairement ce que "remplacer" signifie pour toi.

    Par exemple "Je veux que les 3 derniers caractères du contenu de la cellule soit remplacés par le ce qui est dans ma textbox.".

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  9. #9
    Nouveau membre du Club
    je solution me convient: "Parce sinon, si tu veux changer la valeur entière, il suffit d'assigner la nouvelle valeur dans la cellule et cela va la mettre à jour."

    je vais essayé.

    Merci.