Alimenter ma base de donnée sous certaine condition

  • Initiateur de la discussion Initiateur de la discussion creolia
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

creolia

XLDnaute Impliqué
Bonjour et bonne année à tous

Je me retourne vers vous pour un petit soucis

je gere un planning de pompier en colone A le Nom en B prénom et en C la specialité

je l'alimente à l'aide cette macro

Code:
NL = [Feuil1].Range("A" & Cells.Rows.Count).End(xlUp).Row + 1
  With Worksheets(G2.Text)
    .Cells(NL, 1).Value = M1) 
    .Cells(NL, 2).Value = M2
    .Cells(NL, 3).Value = M3

    
    End With

je cherche à modifier celle ci pour que:
si le nom et prénom sont présent dans ma liste uniquement la specialité soit modifier
dans le cas contaire
une nouvelle ligne est ajouter avec les renseignement présent dans mes 3 textbox (Nom prenom et specialité)

je pourais utiliser deux boutons ajouter et modifier mais je souhaiterais dans la mesure du possible que ce soit automatique.

pouvez svp m'aider dans cette exercise merci d'avance
 

Pièces jointes

Re : Alimenter ma base de donnée sous certaine condition

Hello creolia, Forum,

Modifiez le code du bouton "ajouter" de l'Usf comme ceci...
Code:
Private Sub CommandButton1_Click()
    
    'On déclare les variables
    Dim NL, l As Integer
    Dim doublon As Boolean
    Dim cel As Range
    
    'On initialise la variable doublon comme False
    doublon = False
    
    'Sur la feuille "Feuil1"
    With Sheets("Feuil1")
        'Ça vous savez
        NL = .Range("A" & .Cells.Rows.Count).End(xlUp).Row + 1
        'Pour toutes les cellules entre A2 et la dernière cellule de la colonne A
        For Each cel In .Range(.Cells(2, 1), .Cells(NL, 1))
            'Si nom ET prénom pareils alors
            If cel.Value = M1.Value And cel.Offset(0, 1).Value = M2.Value Then
                'Passer doublon en True
                doublon = True
                'Sort de la boucle
                Exit For
            'Fin de la condition
            End If
        'Fin de la boucle
        Next cel
        'Pour les condition de doublon
        Select Case doublon
            'Si vrai
            Case True
                'Message
                MsgBox "''" & M1.Value & "'' est déjà dans la liste." _
                & Chr(13) & "Vous ne pourrez que modifier sa spécialité !"
                'On reprend la boucle d'avant
                For Each cel In .Range(.Cells(2, 1), .Cells(NL, 1))
                    'Si nom ET prénom pareils alors
                    If cel.Value = M1.Value And cel.Offset(0, 1).Value = M2.Value Then
                        'Modification uniquement de la spécialité du doublon (de la ligne concernée)
                        cel.Offset(0, 2).Value = M3
                    End If
                'Fin de la boucle
                Next cel
            'Si faux
            Case False
                'Ajout des données à la ligne suivante
                .Cells(NL, 1).Value = M1
                .Cells(NL, 2).Value = M2
                .Cells(NL, 3).Value = M3
        'Fin de Select
        End Select
    'Fin du With
    End With

End Sub
Malheureusement, je ne me souviens plus de qui m'a apprit cette méthode pour détecter les doublons, mais merci à lui !
 
Dernière édition:
Re : Alimenter ma base de donnée sous certaine condition

Re bonjour donc j(ai localisé la ligne à modifier se serais celle ci
Code:
NL = .Range("A" & .Cells.Rows.Count).End(xlUp).Row + 1

mais comment incrementation maxi jusqua la ligne 100 c'est un mystere pour moi

si une bonne ames veut bien m'expliquer svp merci
 
Re : Alimenter ma base de donnée sous certaine condition

Re bonjour je m'en sort toujours pas avec mon problème quelqu'un à t'il vraiment pas une idée svp je rappelle je veut juste modifier ce que hulk ma aimablement donner sauf au lieux d'aller tous en bas et remonter jusqu’à la dernière ligne renseigner je voudrais juste que la zone ne dépasse pas la 100e ligne merci encore
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Retour