Bonsoir,
Sur mon fichier dans l'onglet RDV je souhaitais quand je clique sur UNPAID ou autre bouton se trouvant en I1 que les états des paiements s'affichent dans des onglets spécifiques.
Par exemple : Quand je clique sur UNPAID, je souhaite que tous les noms avec l'état NON PAYE de l'onglet RDV se copient dans l'onglet RDV NON PAYES.
Mon souci est que chaque fois que je lance la macro elle copie tous les noms, même ceux déja notés et datés. J'ai donc des doublons avec cette macro.
Je ne sais pas si je peux continuer à l'utiliser en ajoutant une ligne de commande ?
merci pour votre aide.
Sur mon fichier dans l'onglet RDV je souhaitais quand je clique sur UNPAID ou autre bouton se trouvant en I1 que les états des paiements s'affichent dans des onglets spécifiques.
Par exemple : Quand je clique sur UNPAID, je souhaite que tous les noms avec l'état NON PAYE de l'onglet RDV se copient dans l'onglet RDV NON PAYES.
Mon souci est que chaque fois que je lance la macro elle copie tous les noms, même ceux déja notés et datés. J'ai donc des doublons avec cette macro.
VB:
Sub RDVGratuits()
Dim wsSource As Worksheet
Dim wsDestination As Worksheet
Dim lastRow As Long
Dim i As Long
Dim searchWord As String
' Sur la feuille "RDV"
Set wsSource = ThisWorkbook.Worksheets("RDV")
' Copier sur la feuille "RDV GRATUITS" selon les données demandées
Set wsDestination = ThisWorkbook.Worksheets("RDV GRATUITS")
' Recherche "GRATUIT"
searchWord = "GRATUIT"
lastRow = wsSource.Cells(wsSource.Rows.Count, "F").End(xlUp).Row
For i = 1 To lastRow
If InStr(1, wsSource.Cells(i, "F").Value, searchWord, vbTextCompare) > 0 Then
wsSource.Rows(i).Copy wsDestination.Rows(wsDestination.Cells(wsDestination.Rows.Count, "A").End(xlUp).Row + 1)
End If
Next i
End Sub
Sub RDVAnnules()
Dim wsSource As Worksheet
Dim wsDestination As Worksheet
Dim lastRow As Long
Dim i As Long
Dim searchWord As String
' Feuille "RDV" contenant les données
Set wsSource = ThisWorkbook.Worksheets("RDV")
' Copier la recherche dans la feuille "RDV ANNULES"
Set wsDestination = ThisWorkbook.Worksheets("RDV ANNULES")
' Rechercher "ANNULE"
searchWord = "ANNULE"
lastRow = wsSource.Cells(wsSource.Rows.Count, "F").End(xlUp).Row
For i = 1 To lastRow
If InStr(1, wsSource.Cells(i, "F").Value, searchWord, vbTextCompare) > 0 Then
wsSource.Rows(i).Copy wsDestination.Rows(wsDestination.Cells(wsDestination.Rows.Count, "A").End(xlUp).Row + 1)
End If
Next i
End Sub
Sub RDVNonpayes()
Dim wsSource As Worksheet
Dim wsDestination As Worksheet
Dim lastRow As Long
Dim i As Long
Dim searchWord As String
' Feuille "RDV"
Set wsSource = ThisWorkbook.Worksheets("RDV")
' Copier dans la feuille "RDV NON PAYES"
Set wsDestination = ThisWorkbook.Worksheets("RDV NON PAYES")
' Rechercher "NON PAYE"
searchWord = "NON PAYE"
lastRow = wsSource.Cells(wsSource.Rows.Count, "F").End(xlUp).Row
For i = 1 To lastRow
If InStr(1, wsSource.Cells(i, "F").Value, searchWord, vbTextCompare) > 0 Then
wsSource.Rows(i).Copy wsDestination.Rows(wsDestination.Cells(wsDestination.Rows.Count, "A").End(xlUp).Row + 1)
End If
Next i
End Sub
Je ne sais pas si je peux continuer à l'utiliser en ajoutant une ligne de commande ?
merci pour votre aide.