Alimenter ma base de donnée sous certaine condition

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

  • Classeur1.xls
    26 KB · Affichages: 49
  • Classeur1.xls
    26 KB · Affichages: 49
  • Classeur1.xls
    26 KB · Affichages: 48

Hulk

XLDnaute Barbatruc
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:

creolia

XLDnaute Impliqué
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
 

creolia

XLDnaute Impliqué
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
 

Discussions similaires

Statistiques des forums

Discussions
312 201
Messages
2 086 171
Membres
103 152
dernier inscrit
Karibu