Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
michdenis
Bonsoir ThierryGolo,
Copie la procédure suivante dans un module standard` Elle filtre les données d'une feuille de calcul à partir des valeurs "date" de tes 2 combobox de ton formulaire
Tu dois définir les variables suivantes : ColduFiltre , NomFeuille et modifier le nom des combobox selon ceux de ton application.
Le Résultat du filtre s'affichera sur une nouvelle feuille de calcul.
'------------------------------------- Sub Filtre_Copier_Effacer()
Dim Rg As Range, LeFormat As String, Sh As Worksheet Dim DateDébut As Long, DateFin As Long, ColduFiltre Dim NomFeuille As String
'*******Variables à définir pour le filtre******
ColduFiltre = 2 'numéro de la colonne de la plage sur 'lequel s'effectue le filtre NomFeuille = "Feuil1" 'Nom de ta feuille de calcul
With userform1 If IsDate(.combobox1) = True Then DateDébut = CDate(userform1.combobox1) Else MsgBox "Le Combobox1) ne contient pas une date" Exit Sub End If If IsDate(.combobox2) = True Then DateFin = CDate(userform1.combobox2) Else MsgBox "Le Combobox2) ne contient pas une date" Exit Sub End If '*************************************************
Application.ScreenUpdating = False With Worksheets(NomFeuille) 'Détermine la plage où est le filtre doit s'exécuter Set Rg = .Range("A1:A" & .Range("A65536").End(xlUp).Row).CurrentRegion 'Prend note du format du champ date sur lequel le filtre s'exécute LeFormat = Rg(2).NumberFormat 'Modifie le champ date pour les besoins du filtre Rg.NumberFormat = "General" 'Filtre les données selon les critères retenus Rg.AutoFilter Field:=ColduFiltre, Criteria1:=">=" & DateDébut, _ Operator:=xlAnd, Criteria2:="<=" & DateFin 'Copie les résultats du filtre vers la plage de destination Set Sh = Worksheets.Add Rg.SpecialCells(xlCellTypeVisible).Copy Sh.Range("A1") Sh.Columns(ColduFiltre).NumberFormat = LeFormat Rg.AutoFilter 'Remet le format date au champ date Rg.NumberFormat = LeFormat End With 'Libère l'espace mémoire occupée par les objets. Set Rg = Nothing: Set Sh = Nothing
End Sub '-------------------------------------
Salutations!
"ThierryGolo" a écrit dans le message de news:% Bonsoir à tous les Excellentes et les Excellents VB (Vétérant(e)s du Basic)
Mon problème :
Sur une feuille disons Data j'ai mes colonnes date, nom, Société, etc etc.
Je voudrais dans une UserForm mettre un ComboBoxDateDébut
et un ComboBoxDateFin (bien-sûr la date mini du 2ème ComboBox serait
la date selectionnée du 1er ComboBox).
Une fois les deux dates selectionnées extraire
sur une autre feuille les lignes correspondantes
entre ces 2 dates.
(pour moi c'est clair (l'explication, pas le code))
Merci très beaucoup plein de votre aide à venir
Amicalemnt
ThierryGolo
Bonsoir ThierryGolo,
Copie la procédure suivante dans un module standard`
Elle filtre les données d'une feuille de calcul à partir des valeurs "date" de tes 2 combobox de ton formulaire
Tu dois définir les variables suivantes : ColduFiltre , NomFeuille et modifier le nom des combobox selon ceux de ton
application.
Le Résultat du filtre s'affichera sur une nouvelle feuille de calcul.
'-------------------------------------
Sub Filtre_Copier_Effacer()
Dim Rg As Range, LeFormat As String, Sh As Worksheet
Dim DateDébut As Long, DateFin As Long, ColduFiltre
Dim NomFeuille As String
'*******Variables à définir pour le filtre******
ColduFiltre = 2 'numéro de la colonne de la plage sur
'lequel s'effectue le filtre
NomFeuille = "Feuil1" 'Nom de ta feuille de calcul
With userform1
If IsDate(.combobox1) = True Then
DateDébut = CDate(userform1.combobox1)
Else
MsgBox "Le Combobox1) ne contient pas une date"
Exit Sub
End If
If IsDate(.combobox2) = True Then
DateFin = CDate(userform1.combobox2)
Else
MsgBox "Le Combobox2) ne contient pas une date"
Exit Sub
End If
'*************************************************
Application.ScreenUpdating = False
With Worksheets(NomFeuille)
'Détermine la plage où est le filtre doit s'exécuter
Set Rg = .Range("A1:A" & .Range("A65536").End(xlUp).Row).CurrentRegion
'Prend note du format du champ date sur lequel le filtre s'exécute
LeFormat = Rg(2).NumberFormat
'Modifie le champ date pour les besoins du filtre
Rg.NumberFormat = "General"
'Filtre les données selon les critères retenus
Rg.AutoFilter Field:=ColduFiltre, Criteria1:=">=" & DateDébut, _
Operator:=xlAnd, Criteria2:="<=" & DateFin
'Copie les résultats du filtre vers la plage de destination
Set Sh = Worksheets.Add
Rg.SpecialCells(xlCellTypeVisible).Copy Sh.Range("A1")
Sh.Columns(ColduFiltre).NumberFormat = LeFormat
Rg.AutoFilter
'Remet le format date au champ date
Rg.NumberFormat = LeFormat
End With
'Libère l'espace mémoire occupée par les objets.
Set Rg = Nothing: Set Sh = Nothing
End Sub
'-------------------------------------
Salutations!
"ThierryGolo" <nospam-ThierryGolo@wanadoo.fr> a écrit dans le message de news:%23ZBxCVDZDHA.656@tk2msftngp13.phx.gbl...
Bonsoir à tous les Excellentes et les Excellents VB (Vétérant(e)s du Basic)
Mon problème :
Sur une feuille disons Data j'ai mes colonnes date, nom, Société, etc etc.
Je voudrais dans une UserForm mettre un ComboBoxDateDébut
et un ComboBoxDateFin (bien-sûr la date mini du 2ème ComboBox serait
la date selectionnée du 1er ComboBox).
Une fois les deux dates selectionnées extraire
sur une autre feuille les lignes correspondantes
entre ces 2 dates.
(pour moi c'est clair (l'explication, pas le code))
Copie la procédure suivante dans un module standard` Elle filtre les données d'une feuille de calcul à partir des valeurs "date" de tes 2 combobox de ton formulaire
Tu dois définir les variables suivantes : ColduFiltre , NomFeuille et modifier le nom des combobox selon ceux de ton application.
Le Résultat du filtre s'affichera sur une nouvelle feuille de calcul.
'------------------------------------- Sub Filtre_Copier_Effacer()
Dim Rg As Range, LeFormat As String, Sh As Worksheet Dim DateDébut As Long, DateFin As Long, ColduFiltre Dim NomFeuille As String
'*******Variables à définir pour le filtre******
ColduFiltre = 2 'numéro de la colonne de la plage sur 'lequel s'effectue le filtre NomFeuille = "Feuil1" 'Nom de ta feuille de calcul
With userform1 If IsDate(.combobox1) = True Then DateDébut = CDate(userform1.combobox1) Else MsgBox "Le Combobox1) ne contient pas une date" Exit Sub End If If IsDate(.combobox2) = True Then DateFin = CDate(userform1.combobox2) Else MsgBox "Le Combobox2) ne contient pas une date" Exit Sub End If '*************************************************
Application.ScreenUpdating = False With Worksheets(NomFeuille) 'Détermine la plage où est le filtre doit s'exécuter Set Rg = .Range("A1:A" & .Range("A65536").End(xlUp).Row).CurrentRegion 'Prend note du format du champ date sur lequel le filtre s'exécute LeFormat = Rg(2).NumberFormat 'Modifie le champ date pour les besoins du filtre Rg.NumberFormat = "General" 'Filtre les données selon les critères retenus Rg.AutoFilter Field:=ColduFiltre, Criteria1:=">=" & DateDébut, _ Operator:=xlAnd, Criteria2:="<=" & DateFin 'Copie les résultats du filtre vers la plage de destination Set Sh = Worksheets.Add Rg.SpecialCells(xlCellTypeVisible).Copy Sh.Range("A1") Sh.Columns(ColduFiltre).NumberFormat = LeFormat Rg.AutoFilter 'Remet le format date au champ date Rg.NumberFormat = LeFormat End With 'Libère l'espace mémoire occupée par les objets. Set Rg = Nothing: Set Sh = Nothing
End Sub '-------------------------------------
Salutations!
"ThierryGolo" a écrit dans le message de news:% Bonsoir à tous les Excellentes et les Excellents VB (Vétérant(e)s du Basic)
Mon problème :
Sur une feuille disons Data j'ai mes colonnes date, nom, Société, etc etc.
Je voudrais dans une UserForm mettre un ComboBoxDateDébut
et un ComboBoxDateFin (bien-sûr la date mini du 2ème ComboBox serait
la date selectionnée du 1er ComboBox).
Une fois les deux dates selectionnées extraire
sur une autre feuille les lignes correspondantes
entre ces 2 dates.
(pour moi c'est clair (l'explication, pas le code))
Merci très beaucoup plein de votre aide à venir
Amicalemnt
ThierryGolo
AV
Ave Denis,
Je vois que t'as pas trop pris de risques avec le problème du filtrage des dates et leur format ! ;-)) AV
Ave Denis,
Je vois que t'as pas trop pris de risques avec le problème du filtrage des dates
et leur format !
;-))
AV
Je vois que t'as pas trop pris de risques avec le problème du filtrage des dates et leur format ! ;-)) AV
michdenis
Bonjour Thierry,
" les ComboBox1 et 2 sont vides "
Qu'est-ce que cela veut dire ?
A ) que la propriété RowSource n'a pas été défini Si oui, où sont les données que devraient contenir tes listes déroulant(combobox)
B ) Que la valeur par défaut à l'ouverture du formulaire n'a pas été défini. Si oui, Utilise l'événement suivant : Private Sub UserForm_Initialize() Me.ComboBox1.Value = ???? Me.ComboBox2.Value = ???? End Sub
Salutations!
P.S. La macro sur le filtre automatique copie les données vers une autre feuille mais n'efface pas les données copiées de la plage de données originales !
"ThierryGolo" a écrit dans le message de news: Bonjour , Je remerci MichDenispour ses lumières, petit problème j'ai fait tout comme il m'a dit mais lorsque je lance Sub Filtre_Copier_Effacer() l'userForm1 s'ouvre mais les ComboBox1 et 2 sont vides??? Qelqu'un peut-i m'aider encore une fois Je vous souhaite une Bonne journée Et vous reMerci d'avance ThierryGolo
"ThierryGolo" a écrit dans le message de news: #
Bonsoir à tous les Excellentes et les Excellents VB (Vétérant(e)s du Basic)
Mon problème :
Sur une feuille disons Data j'ai mes colonnes date, nom, Société, etc etc.
Je voudrais dans une UserForm mettre un ComboBoxDateDébut
et un ComboBoxDateFin (bien-sûr la date mini du 2ème ComboBox serait
la date selectionnée du 1er ComboBox).
Une fois les deux dates selectionnées extraire
sur une autre feuille les lignes correspondantes
entre ces 2 dates.
(pour moi c'est clair (l'explication, pas le code))
Merci très beaucoup plein de votre aide à venir
Amicalemnt
ThierryGolo
Bonjour Thierry,
" les ComboBox1 et 2 sont vides "
Qu'est-ce que cela veut dire ?
A ) que la propriété RowSource n'a pas été défini
Si oui, où sont les données que devraient contenir tes listes déroulant(combobox)
B ) Que la valeur par défaut à l'ouverture du formulaire n'a pas été défini.
Si oui, Utilise l'événement suivant :
Private Sub UserForm_Initialize()
Me.ComboBox1.Value = ????
Me.ComboBox2.Value = ????
End Sub
Salutations!
P.S. La macro sur le filtre automatique copie les données vers une autre feuille mais n'efface pas les données copiées de la
plage de données originales !
"ThierryGolo" <nospam-ThierryGolo@wanadoo.fr> a écrit dans le message de news:eOJJENLZDHA.2284@TK2MSFTNGP12.phx.gbl...
Bonjour ,
Je remerci MichDenispour ses lumières, petit problème j'ai fait tout comme
il m'a dit
mais lorsque je lance Sub Filtre_Copier_Effacer()
l'userForm1 s'ouvre mais les ComboBox1 et 2 sont vides???
Qelqu'un peut-i m'aider encore une fois
Je vous souhaite une Bonne journée
Et vous reMerci d'avance
ThierryGolo
"ThierryGolo" <nospam-ThierryGolo@wanadoo.fr> a écrit dans le message de
news: #ZBxCVDZDHA.656@tk2msftngp13.phx.gbl...
Bonsoir à tous les Excellentes et les Excellents VB (Vétérant(e)s du
Basic)
Mon problème :
Sur une feuille disons Data j'ai mes colonnes date, nom, Société, etc
etc.
Je voudrais dans une UserForm mettre un ComboBoxDateDébut
et un ComboBoxDateFin (bien-sûr la date mini du 2ème ComboBox serait
la date selectionnée du 1er ComboBox).
Une fois les deux dates selectionnées extraire
sur une autre feuille les lignes correspondantes
entre ces 2 dates.
(pour moi c'est clair (l'explication, pas le code))
A ) que la propriété RowSource n'a pas été défini Si oui, où sont les données que devraient contenir tes listes déroulant(combobox)
B ) Que la valeur par défaut à l'ouverture du formulaire n'a pas été défini. Si oui, Utilise l'événement suivant : Private Sub UserForm_Initialize() Me.ComboBox1.Value = ???? Me.ComboBox2.Value = ???? End Sub
Salutations!
P.S. La macro sur le filtre automatique copie les données vers une autre feuille mais n'efface pas les données copiées de la plage de données originales !
"ThierryGolo" a écrit dans le message de news: Bonjour , Je remerci MichDenispour ses lumières, petit problème j'ai fait tout comme il m'a dit mais lorsque je lance Sub Filtre_Copier_Effacer() l'userForm1 s'ouvre mais les ComboBox1 et 2 sont vides??? Qelqu'un peut-i m'aider encore une fois Je vous souhaite une Bonne journée Et vous reMerci d'avance ThierryGolo
"ThierryGolo" a écrit dans le message de news: #
Bonsoir à tous les Excellentes et les Excellents VB (Vétérant(e)s du Basic)
Mon problème :
Sur une feuille disons Data j'ai mes colonnes date, nom, Société, etc etc.
Je voudrais dans une UserForm mettre un ComboBoxDateDébut
et un ComboBoxDateFin (bien-sûr la date mini du 2ème ComboBox serait
la date selectionnée du 1er ComboBox).
Une fois les deux dates selectionnées extraire
sur une autre feuille les lignes correspondantes
entre ces 2 dates.
(pour moi c'est clair (l'explication, pas le code))
Merci très beaucoup plein de votre aide à venir
Amicalemnt
ThierryGolo
michdenis
Bonjour AV,
Moi qui croyait que de répondre à une telle question était déjà risquée....C'est vrai qu'un fil-de-fériste peut aussi s'exécuter sans perche mais il serait préférable qu'il se tienne à quelques mètres du sol. ;-))
Salutations!
"AV" a écrit dans le message de news: Ave Denis,
Je vois que t'as pas trop pris de risques avec le problème du filtrage des dates et leur format ! ;-)) AV
Bonjour AV,
Moi qui croyait que de répondre à une telle question était déjà risquée....C'est vrai qu'un fil-de-fériste peut aussi
s'exécuter sans perche mais il serait préférable qu'il se tienne à quelques mètres du sol. ;-))
Salutations!
"AV" <alain.vallon@wanadoo.fr> a écrit dans le message de news:OpHVwuHZDHA.1744@TK2MSFTNGP12.phx.gbl...
Ave Denis,
Je vois que t'as pas trop pris de risques avec le problème du filtrage des dates
et leur format !
;-))
AV
Moi qui croyait que de répondre à une telle question était déjà risquée....C'est vrai qu'un fil-de-fériste peut aussi s'exécuter sans perche mais il serait préférable qu'il se tienne à quelques mètres du sol. ;-))
Salutations!
"AV" a écrit dans le message de news: Ave Denis,
Je vois que t'as pas trop pris de risques avec le problème du filtrage des dates et leur format ! ;-)) AV