Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
XL 2016supprimer une plage de cellules avec la combobox
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 !
Bjr,
suivant l'userform joint, j'aimerai supprimer une ligne de joueur avec la combobox mais sans supprimer les numéros de la colonne A ?
une idée de code ?
merci d'avance
bye
Dans le fichier joint, j'utilise l'équivalent de la fonction EQUIV en vba pour trouver la ligne à supprimer.
Et puisque vous utilisez un tableau structuré, autant se servir de ses facilités pour trouver les bonnes plages.
VB:
Private Sub CommandButtonSupprimer_Click()
Dim idx As Variant
If CB_SuppJoueur.Value <> "" Then
With Sheets("Joueurs").Range("Tableau1[#Data]")
idx = Application.Match(CB_SuppJoueur.Value, .Columns(2), 0)
If Not IsError(idx) Then .Rows(idx).Delete xlShiftUp
End With
CB_SuppJoueur = ""
Else
MsgBox ("Veuillez sélectionner un joueur dans la liste")
End If
End Sub
Private Sub CommandButtonSupprimer_Click()
' idx qui contiendra le résultat de la fonction MATCH (EQUIV) doit être variant car
' si la fonction échoue il contiendra une valeur d'erreur : xlErrNa (#N/A dans une cellule)
' si elle réussit idx contiendra le numéro ordinal de la ligne dans les données du tableau (1 à n)
Dim idx As Variant
' Si on a une valeur pour le combobox
If CB_SuppJoueur.Value <> "" Then
'Chercher dans les données du tableau est égal à Tableau1[#Données] dans la feuille de calcul
With Sheets("Joueurs").Range("Tableau1[#Data]")
' On cherche la valeur du combobox dans la deuxième colonne du tableau
idx = Application.Match(CB_SuppJoueur.Value, .Columns(2), 0)
' Si trouvé (idx n'est pas une erreur) alors on supprimer la ligne des données correspondantes.
If Not IsError(idx) Then .Rows(idx).Delete xlShiftUp
End With
CB_SuppJoueur = ""
Else
MsgBox ("Veuillez sélectionner un joueur dans la liste")
End If
End Sub
Le point de .Rows nous indique qu'on est toujours dans le tableau de données, qu'il s'agit d'une de ces lignes. Grâce à la Structure With...End With .Rows(idx) est équivalent à :
supprimé toute la ligne et donc le numéro présent en colonne "A"
Donc la colonne où se trouve le numéro n'est pas effacé et c'est l'essentiel puisque c'était la demande .
' si elle réussit idx contiendra le numéro ordinal de la ligne dans les données du tableau (1 à n)
Re
je viens de regarder le Fichier effectivement la colonne "A" ne fait pas partie du Tableau !!!!!
Arff je pouvais pas le deviner et c'était même pas la Peine d'en parler donc Lol
Cordialement
Jean marie
- 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