XL 2010 Modification/supression avec un formulaire de saisie

Appo1985

XLDnaute Occasionnel
Bonjour à tous.

J'aimerais pouvoir modifier les 5 notes des élèves et supprimer des élèves dans le tableau qui se trouve sur la feuille note à l'aide du formulaire.

Dans le formulaire le nom et le prénom de chaque élève est obtenu grâce à la formule rechercheV à partir du numéro matricule.

Merci d'avance.
 

Pièces jointes

  • notes eleves.xlsm
    15.9 KB · Affichages: 23
Solution
Exact, sait bien je voie que tu testes,
Une modif sous le bouton [Modifier Enregistrer]
lig = Application.Match(Val(ComboBox1.Value), .[B:B], 0)
au lieu de
lig = Application.Match(ComboBox1.Value, .[B:B], 0)
une boulette de ma part
Bruno
VB:
Private Sub note1Enregistrer_Click()
onglet = Array("notet1", "notet2", "notet3")
With Sheets(onglet(ComboBox2.ListIndex))
lig = Application.Match(Val(ComboBox1.Value), .[B:B], 0)
If Not IsNumeric(lig) Then lig = Application.CountA(.[B:B]) + 4
.Cells(lig, 2) = Val(ComboBox1.Value)
.Cells(lig, 3) = lblsexe: .Cells(lig, 4) = lblnom: .Cells(lig, 5) = lblprenom
For k = 1 To 12: .Cells(lig, k + 5) = Controls("TextBox" & k): Next
End With
End Sub

GALOUGALOU

XLDnaute Accro
re appo1985 bonjour le fil
sur la même idée que le fil précèdent
VB:
Sub suppression_élève()
Dim F1 As String
Dim F2 As String
F1 = Sheets("formulaire").Name
F2 = Sheets("note").Name
 Sheets(F2).Select
 li = Sheets(F2).Cells(36000, 3).End(xlUp).Row

For i = 5 To li
If Sheets(F2).Cells(i, 3) = Sheets(F1).Range("D9") Then
Sheets(F2).Cells(i, 3) = ""
Sheets(F2).Cells(i, 4) = ""
Sheets(F2).Cells(i, 5) = ""
Sheets(F2).Cells(i, 6) = ""
Sheets(F2).Cells(i, 7) = ""
Sheets(F2).Cells(i, 8) = ""
Sheets(F2).Cells(i, 9) = ""
Sheets(F2).Cells(i, 10) = ""

End If
Next
MsgBox ("Modifications effectuées")
Sheets(F1).Range("D9") = ""
Sheets(F1).Range("D15") = ""
Sheets(F1).Range("G9") = ""
 Sheets(F1).Range("G11") = ""
 Sheets(F1).Range("G13") = ""
 Sheets(F1).Range("G15") = ""
 Sheets(F1).Select
 


End Sub
avec une confirmation de suppression
Code:
Sub test()

If MsgBox("Confirmez vous la suppression ?", vbYesNo) = vbYes Then
Call suppression_élève
Else

MsgBox "modifications abandonnées !"
End If
End Sub

pour l'exemple voir le classeur
cordialement
galougalou
 

Pièces jointes

  • impression élèves3.xlsm
    24 KB · Affichages: 9
Dernière édition:

Appo1985

XLDnaute Occasionnel
re appo1985 bonjour le fil
sur la même idée que le fil précèdent
VB:
Sub suppression_élève()
Dim F1 As String
Dim F2 As String
F1 = Sheets("formulaire").Name
F2 = Sheets("note").Name
 Sheets(F2).Select
 li = Sheets(F2).Cells(36000, 3).End(xlUp).Row

For i = 5 To li
If Sheets(F2).Cells(i, 3) = Sheets(F1).Range("D9") Then
Sheets(F2).Cells(i, 3) = ""
Sheets(F2).Cells(i, 4) = ""
Sheets(F2).Cells(i, 5) = ""
Sheets(F2).Cells(i, 6) = ""
Sheets(F2).Cells(i, 7) = ""
Sheets(F2).Cells(i, 8) = ""
Sheets(F2).Cells(i, 9) = ""
Sheets(F2).Cells(i, 10) = ""

End If
Next
MsgBox ("Modifications effectuées")
Sheets(F1).Range("D9") = ""
Sheets(F1).Range("D15") = ""
Sheets(F1).Range("G9") = ""
 Sheets(F1).Range("G11") = ""
 Sheets(F1).Range("G13") = ""
 Sheets(F1).Range("G15") = ""
 Sheets(F1).Select
 


End Sub
avec une confirmation de suppression
Code:
Sub test()

If MsgBox("Confirmez vous la suppression ?", vbYesNo) = vbYes Then
Call suppression_élève
Else

MsgBox "modifications abandonnées !"
End If
End Sub

pour l'exemple voir le classeur
cordialement
galougalou
Bonjour GALOUGALOU
Bonjour à tous
re appo1985 bonjour le fil
sur la même idée que le fil précèdent
VB:
Sub suppression_élève()
Dim F1 As String
Dim F2 As String
F1 = Sheets("formulaire").Name
F2 = Sheets("note").Name
 Sheets(F2).Select
 li = Sheets(F2).Cells(36000, 3).End(xlUp).Row

For i = 5 To li
If Sheets(F2).Cells(i, 3) = Sheets(F1).Range("D9") Then
Sheets(F2).Cells(i, 3) = ""
Sheets(F2).Cells(i, 4) = ""
Sheets(F2).Cells(i, 5) = ""
Sheets(F2).Cells(i, 6) = ""
Sheets(F2).Cells(i, 7) = ""
Sheets(F2).Cells(i, 8) = ""
Sheets(F2).Cells(i, 9) = ""
Sheets(F2).Cells(i, 10) = ""

End If
Next
MsgBox ("Modifications effectuées")
Sheets(F1).Range("D9") = ""
Sheets(F1).Range("D15") = ""
Sheets(F1).Range("G9") = ""
 Sheets(F1).Range("G11") = ""
 Sheets(F1).Range("G13") = ""
 Sheets(F1).Range("G15") = ""
 Sheets(F1).Select
 


End Sub
avec une confirmation de suppression
Code:
Sub test()

If MsgBox("Confirmez vous la suppression ?", vbYesNo) = vbYes Then
Call suppression_élève
Else

MsgBox "modifications abandonnées !"
End If
End Sub

pour l'exemple voir le classeur
cordialement
galougalou
Bonjour GALOUGALOU
Bonjour à tous. J'ai testé ce que vous m'avez envoyé mais ce qu'il y a c'est que je voulais que toute la ligne soit supprimée.
 

GALOUGALOU

XLDnaute Accro
re appo1985
pour la suppression de toute la ligne

VB:
Sub suppression_élève()
Dim F1 As String
Dim F2 As String
F1 = Sheets("formulaire").Name
F2 = Sheets("note").Name
 Sheets(F2).Select
 li = Sheets(F2).Cells(36000, 3).End(xlUp).Row

For i = 5 To li
If Sheets(F2).Cells(i, 3) = Sheets(F1).Range("D9") Then
   Rows(i).Select
Selection.Delete Shift:=xlUp



End If
Next
MsgBox ("Modifications effectuées")
Sheets(F1).Range("D9") = ""
Sheets(F1).Range("D15") = ""
Sheets(F1).Range("G9") = ""
 Sheets(F1).Range("G11") = ""
 Sheets(F1).Range("G13") = ""
 Sheets(F1).Range("G15") = ""
 Sheets(F1).Select
 
cordialement
galougalou

End Sub
 

cathodique

XLDnaute Barbatruc
Bonjour GALOUGALOU
Bonjour à tous

Bonjour GALOUGALOU
Bonjour à tous. J'ai testé ce que vous m'avez envoyé mais ce qu'il y a c'est que je voulais que toute la ligne soit supprimée.
Bonjour @Appo1985 ,@GALOUGALOU

Si j'ai bien compris et sur la base de la macro de Galougalou remodelée à tester.
VB:
Sub suppression_élève()
    Dim F1 As String
    Dim F2 As String
    F1 = Sheets("formulaire").Name
    F2 = Sheets("note").Name
    Application.ScreenUpdating = False
    With Sheets(F2)
        li = .Cells(36000, 3).End(xlUp).Row
        For i = 5 To li
            If .Cells(i, 3) = Sheets(F1).Range("D9") Then
                .Rows(i).Delete
                Exit For
            End If
        Next
    End With
    MsgBox ("Modifications effectuées")
    With Sheets(F1)
        .Range("D9") = ""
        .Range("D15") = ""
        .Range("G9") = ""
        .Range("G11") = ""
        .Range("G13") = ""
        .Range("G15") = ""
    End With
    Application.ScreenUpdating = True
End Sub
Bonne journée.
 

Appo1985

XLDnaute Occasionnel
re appo1985
pour la suppression de toute la ligne

VB:
Sub suppression_élève()
Dim F1 As String
Dim F2 As String
F1 = Sheets("formulaire").Name
F2 = Sheets("note").Name
 Sheets(F2).Select
 li = Sheets(F2).Cells(36000, 3).End(xlUp).Row

For i = 5 To li
If Sheets(F2).Cells(i, 3) = Sheets(F1).Range("D9") Then
   Rows(i).Select
Selection.Delete Shift:=xlUp



End If
Next
MsgBox ("Modifications effectuées")
Sheets(F1).Range("D9") = ""
Sheets(F1).Range("D15") = ""
Sheets(F1).Range("G9") = ""
 Sheets(F1).Range("G11") = ""
 Sheets(F1).Range("G13") = ""
 Sheets(F1).Range("G15") = ""
 Sheets(F1).Select
 
cordialement
galougalou

End Sub
Ça marche bien merci beaucoup
 

Appo1985

XLDnaute Occasionnel
Bonjour @Appo1985 ,@GALOUGALOU

Si j'ai bien compris et sur la base de la macro de Galougalou remodelée à tester.
VB:
Sub suppression_élève()
    Dim F1 As String
    Dim F2 As String
    F1 = Sheets("formulaire").Name
    F2 = Sheets("note").Name
    Application.ScreenUpdating = False
    With Sheets(F2)
        li = .Cells(36000, 3).End(xlUp).Row
        For i = 5 To li
            If .Cells(i, 3) = Sheets(F1).Range("D9") Then
                .Rows(i).Delete
                Exit For
            End If
        Next
    End With
    MsgBox ("Modifications effectuées")
    With Sheets(F1)
        .Range("D9") = ""
        .Range("D15") = ""
        .Range("G9") = ""
        .Range("G11") = ""
        .Range("G13") = ""
        .Range("G15") = ""
    End With
    Application.ScreenUpdating = True
End Sub
Bonne journée.
Merci beaucoup Cathodique
 

Appo1985

XLDnaute Occasionnel
Bonjour à tous. Encore besoin d'aide.
J'ai créer un classeur en utilisant un userform pour l'inscription des nouveaux élèves suivants l'exemple du fichier de @youky(BJ) mais difficile pour moi d'adapter les codes. J'arrive à enregistrer mais je n'arrive pas à faire afficher le matricule de nom et prénom pour pouvoir modifier ou supprimer. Aussi je n'ai pas pu charger la liste déroulante pour choisir les matricules. Mon tableau se trouve sur la feuille "identite". .
Un autre problème on ne peux pas saisir le numéro matricule avant de choisir le sexe.
Merci d'avance.
 

Pièces jointes

  • nouveau.xlsm
    81.5 KB · Affichages: 7

youky(BJ)

XLDnaute Barbatruc
Bonjour,
J'ai supprimé un userform
Le bouton enregistrer sait très bien si c'est un nouveau ou une modif.
En inscription soit tu choisis le matricule dans la liste ou tu l'écris.
Mettre des vrais dates en colonne F serait mieux.
J'ai pas fait tout le reste à toi de jouer.
Bruno
 

Pièces jointes

  • nouveau (1).xlsm
    72.5 KB · Affichages: 22

Appo1985

XLDnaute Occasionnel
Bonjour,
J'ai supprimé un userform
Le bouton enregistrer sait très bien si c'est un nouveau ou une modif.
En inscription soit tu choisis le matricule dans la liste ou tu l'écris.
Mettre des vrais dates en colonne F serait mieux.
J'ai pas fait tout le reste à toi de jouer.
Bruno
Bonjour tout le monde. Merci bien @youky(BJ) . Vraiment je suis très content !
 

ChTi160

XLDnaute Barbatruc
Bonsoir Appo1985
Bonsoir Bruno
je viens de regarder le beau Travail de Bruno et je me suis demandé : "Pourquoi Trois Feuilles"?
1° Identité
2° listefilles
3° listegarcons
Alors que la Seule feuille "Identité" peut faire le travail ! Lol
Bonne continuation
jean marie
 

Discussions similaires

Réponses
17
Affichages
596

Statistiques des forums

Discussions
312 103
Messages
2 085 312
Membres
102 860
dernier inscrit
fredo67