Bonsoir a tous ,
je vous écrit car je suis confronté a une problématique , en effet j'aimerai pouvoir grâce a un userform pour supprimer les donnée suite a une recherche :
voici ce que j'aimerais faire (les points 1 a 4 sont fonctionnelle mais je bloque complémentent sur le point 5)
1-Ouverture de l'userform suite au clique sur le bouton transfert présent dans la feuille "Datashboard .
2-on renseigne le numéro de la personne que l'on recherche sur la textbox "Num".
3-on appuie sur le bouton recherche et les informations (nom,prenom)se renseigne dans les textbox qui leur son destinée.
4-lors du clique sur le bouton transfert de l'userform les informations de la personne recherché viennent se coller dans la feuilles Datashboard une seul fois.
5-parrallement au 4 -ème points les informations (nom,prenom,num) du numéro recherché se supprime de toute les feuilles ou elles se trouvent .
Jai essayé d'écrire un bout de code pour le point 5 mais ca ne fonctionne pas et je ne comprend pas pourquoi .
Si vous avez ne serait ce que des pistes pour m'aider je suis preneur .
Voici le bout de code qui permet de coller les données dans la feuille "Dashboard" et qui devrait supprimer les donnée de la recherche de toute les feuilles
VB:
Private Sub CommandButton2_Click() 'tranfert
If lig = 0 Then Exit Sub
With Sheets("Dashboard")
.Cells(lig, 1) = Me.txtNom
.Cells(lig, 2) = Me.txtPrenom
.Cells(lig, 3) = Me.txtNum
End With
Dim bs As Worksheet
Dim i As Integer
For Each bs In ThisWorkbook.Worksheets
If bs.Name <> "Dashboard" Then ' ici les noms de feuille à exclure
'on se positionne sur la derniere ligne de la colonne A et on remonte jusqu'a la n°2
For i = bs.Range("C" & bs.Rows.Count).End(xlUp).Row To 5 Step -1
'si la cellule correspond au numero saisie
If bs.Range("C" & i).Value = txtNum Then
'on suprime la ligne
Rows(i).Delete
End If
Next i
End If
Next
End Sub
Il y a 2 problèmes dans ta macro :
1)Num n'ést pas déclaré comme variable
2)Rows(i).Delete ne spécifie pas la feuille donc par défaut c'est la feuille active !!!
La voici qui fonctionne :
VB:
Private Sub CommandButton2_Click() 'tranfert
If lig = 0 Then Exit Sub
With Sheets("Dashboard")
.Cells(lig, 1) = Me.txtNom
.Cells(lig, 2) = Me.txtPrenom
.Cells(lig, 3) = Me.txtNum
End With
Dim bs As Worksheet
Dim i As Integer, Num&
Num = Me.txtNum.Value
For Each bs In ThisWorkbook.Worksheets
If bs.Name <> "Dashboard" Then ' ici les noms de feuille à exclure
'on se positionne sur la derniere ligne de la colonne A et on remonte jusqu'a la n°2
For i = bs.Range("C" &...
Il y a 2 problèmes dans ta macro :
1)Num n'ést pas déclaré comme variable
2)Rows(i).Delete ne spécifie pas la feuille donc par défaut c'est la feuille active !!!
La voici qui fonctionne :
VB:
Private Sub CommandButton2_Click() 'tranfert
If lig = 0 Then Exit Sub
With Sheets("Dashboard")
.Cells(lig, 1) = Me.txtNom
.Cells(lig, 2) = Me.txtPrenom
.Cells(lig, 3) = Me.txtNum
End With
Dim bs As Worksheet
Dim i As Integer, Num&
Num = Me.txtNum.Value
For Each bs In ThisWorkbook.Worksheets
If bs.Name <> "Dashboard" Then ' ici les noms de feuille à exclure
'on se positionne sur la derniere ligne de la colonne A et on remonte jusqu'a la n°2
For i = bs.Range("C" & bs.Rows.Count).End(xlUp).Row To 5 Step -1
'si la cellule correspond au numero saisie
If bs.Range("C" & i).Value = Num Then
'on suprime la ligne
bs.Rows(i).Delete
End If
Next i
End If
Next
End Sub