Autres Bug au niveau de la modif de ma Listview

marcelio

XLDnaute Occasionnel
Bonjour le Forum,
Après beaucoup de recherche sur le forum,
j'ai réussi par trouver des codes pour modifier le contenu de ma Listview.
Mais pour moi il y à 2 bug que j'arrive pas à trouver la solution.
Si vous avez une solution je suis preneur.
- Quand je fait une modif sur un nom et clic ensuite sur "VALIDER MOTIF ", la modif se fait bien mais le nom descend à la dernière place.
Hors je voudrais qu'il ne bouge pas, qu'i reste à sa place.
- et quand je clic sur " VALIDER LES DONNEES SUR LA FEUILLE " l'enregistrement ce fait bien mais çà ne modifie pas, cela efface et recopie plus bas.
il faudrait que sa remplace et reste en place.
Merci de votre aide
Marcelio
 

Pièces jointes

  • FICHIER_TEST.xlsm
    107.6 KB · Affichages: 15

youky(BJ)

XLDnaute Barbatruc
. . . .
Else
ListView1.ListItems.Remove (ListView1.SelectedItem.Index)
NbLigLW = LigLW - 1
lig=application.match(RefCherchée,sheets("onglet").[A:A],0)
ce code ci-dessus renvoie le N° ligne de RefCherchée en Sheets("truc") dans la colonne A
Sheets("onglet").rows(lig).delete
End If
End Sub

Ce qui est pratique avec Match c'est que si le ligne n'est pas trouvée lig renvoie un message d'error
Donc si le code n'existe pas on peux mettre
If not isnumeric(lig) then
'on écrit en bas du fichier
else
'on écrit sur l'ancienne ligne
Bruno
 

marcelio

XLDnaute Occasionnel
J'ai un message d'erreur en jaune:
Erreur d'exécution '9'
L'indice n'appartient pas à la sélection

Private Sub _SUPPR_PARTICIPANT_Click()
If LigLW = 0 Then
MsgBox "Veuillez sélectionner la ligne à supprimer !"
Exit Sub
Else
ListView1.ListItems.Remove (ListView1.SelectedItem.Index)
NbLigLW = LigLW - 1
Lig = Application.Match(RefCherchée, Sheets("onglet").[A:A], 0)
'ce code ci-dessus renvoie le N° ligne de RefCherchée en Sheets("truc") dans la colonne A
Sheets("onglet").Rows(k).Delete
End If
End Sub
 

youky(BJ)

XLDnaute Barbatruc
C'était un exemple
voici j'ai testé
Private Sub _SUPPR_PARTICIPANT_Click()
If TextBox1 = "" Then MsgBox "Veuillez sélectionner la ligne à supprimer !":Exit Sub
Lig = Application.Match(Val(TextBox1), [GB:GB], 0)
Range("GA" & Lig & ":GN550").Value = Range("GA" & Lig + 1 & ":GN551").Value
ListView1.ListItems.Remove (ListView1.SelectedItem.Index)
End If
 

marcelio

XLDnaute Occasionnel
Bonjour Bruno et le Forum,
J'ai testé sur la 1ère feuille de mon fichier et tout fonctionne correctement, rencontré aucun problème.
Par contre sur la 2ème feuille j'ai un problème car certain des participants n'ont pas de code.
Donc j'ai essayer de modifier le code VBA :
La TextBox 1 pour le code, j'ai essayer avec la TextBox2 pour les noms et modifier les codes.

Private Sub Valide_part_Click()
If TextBox2 = "" Then Exit Sub
With ActiveSheet
Lig = Application.Match(Val(TextBox2), .[GC1:GC5000], 0)
If Not IsNumeric(Lig) Then Lig = .[GC5000].End(3).Row + 1
.Cells(Lig, 183) = Label57
For k = 1 To 13
.Cells(Lig, k + 183) = Controls("TextBox" & k).Value
Next
Set plage = ActiveSheet.Range("GA2:GN" & Range("GA" & Rows.Count).End(3).Row)
plage.Sort Key1:=Range("GA2"), Order1:=xlAscending, Header:=xlGuess
ListView1.ListItems.Clear
End With

With ListView1
DLig = Range("GA65536").End(xlUp).Row
For Lig = 2 To DLig
If Cells(Lig, 183) = Label57 Then
.ListItems.Add , , Cells(Lig, 184).Text
For col = 185 To 196
.ListItems(.ListItems.Count).ListSubItems.Add , , Cells(Lig, col).Text
Next
End If
Next
End With
End Sub

Je pense que j''ai du oublier quelque chose car plus je valide et plus le nom se multiplie.
A+
Marcelio
 

marcelio

XLDnaute Occasionnel
Re,
Super cela fonctionne mieux maintenant.
Une question:
Courant semaine prochaine j'aurais une autre demande sur le même fichier, mais qui à rien à voir avec ce qu'ont vient de faire.
Est il possible pour moi de te contacter directement par cette discusion.
Encore merci de ton aide.
Bon après midi à toi et au Forum ainsi q'un bon Week-end
Marcelio
 

marcelio

XLDnaute Occasionnel
Bonjour Bruno et le Forum,
Le fichier fonctionne très bien.
Juste que j'ai des lignes qui sont masquer et avec ces lignes masqués cela ne fonctionne pas.
et je voudrais aussi masquer les colonnes de GA à GN.
Mon code

Private Sub Valide_part_Click()
If TextBox2 = "" Then Exit Sub
With ActiveSheet
Lig = Application.Match(TextBox2, .[GC1:GC5000], 0)
If Not IsNumeric(Lig) Then Lig = .[GC5000].End(3).Row + 1
.Cells(Lig, 183) = Label57
For k = 1 To 13
.Cells(Lig, k + 183) = Controls("TextBox" & k).Value
Next
Set plage = ActiveSheet.Range("GA2:GN" & Range("GA" & Rows.Count).End(3).Row)
plage.Sort Key1:=Range("GA2"), Order1:=xlAscending, Header:=xlGuess
ListView1.ListItems.Clear
End With

With ListView1
DLig = Range("GA65536").End(xlUp).Row
For Lig = 2 To DLig
If Cells(Lig, 183) = Label57 Then
.ListItems.Add , , Cells(Lig, 184).Text
For col = 185 To 196
.ListItems(.ListItems.Count).ListSubItems.Add , , Cells(Lig, col).Text
Next
End If
Next
End With
End Sub

Merci encore de ton aide.
Bonne journée à tous
Marcelio
 

youky(BJ)

XLDnaute Barbatruc
Ha! oui
Enlève le .Text qui est en rouge
Sub ChargerLW1(Eqp_T)
With ListView1
DLig = Range("GA65536").End(xlUp).Row
Set EqP = Range("GA1:GA" & DLig).Find(Eqp_T, lookat:=xlWhole)
If EqP Is Nothing Then
Exit Sub
Else
Lig = EqP.Row
End If
Ncol = CInt(Sheets(1).Range("GB1").Column)
NColGroup = Ncol - 1
While Cells(Lig, NColGroup).Text = Eqp_T
.ListItems.Add , , Cells(Lig, Ncol).Text
For ind = 1 To 12
 

youky(BJ)

XLDnaute Barbatruc
Vire les .Text dans le bouton Valider
With ListView1
DLig = Range("GA65536").End(xlUp).Row
For Lig = 2 To DLig
If Cells(Lig, 183) = Label57 Then
.ListItems.Add , , Cells(Lig, 184) '''''.Text
For col = 185 To 196
.ListItems(.ListItems.Count).ListSubItems.Add , , Cells(Lig, col) '''''.Text

EDIT:
Il y en a aussi 4 à enlever sous le bouton Gérer les groupes
 
Dernière édition:

Discussions similaires

Réponses
36
Affichages
2 K

Statistiques des forums

Discussions
312 215
Messages
2 086 329
Membres
103 185
dernier inscrit
salhit