A voir également:
- Excel vba filtre multicritère
- Photo filtre 7 gratuit - Télécharger - Retouche d'image
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
4 réponses
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonsoir, peux-tu partager le code que tu as réalisé?
b Macro1()
' Macro1 permet de filtrer les données à partir de la base de données globale qui se trouve dans un autre fichier Excel appelé nomfichier.
' Elle importe les données de calibration en fonction du choix (région et matériau) de l'utilisateur.
Dim i As Integer
Dim countrow As Long
Dim region As String
Dim materiau() As Variant
Dim Criteria As Object
Application.ScreenUpdating = False
' Néttoyage de l'onglet "Données_Calibration" pour enlever les données du choix précedent.
region = Worksheets("Menu").Range("C3").Value
materiau = Worksheets("Menu").Range("C7:C13").Value
With Worksheets("Données_Calibration")
.Range(.Rows("9:9"), .Rows("9:9").End(xlDown)).ClearContents
End With
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Application.DisplayAlerts = False
' Ouverture du fichier "nom fichier" contenant la base de données globale.
' Sélection du classeur source à partir d'une fenêtre
cheminfichier = Application.GetOpenFilename("Fichiers Excels (*.xlsx), *.xlsx")
' Si on clique sur Annuler dans la fenêtre, on sort de la boucle
If cheminfichier = False Then
Exit Sub
End If
'Ouverture du classeur source contenant les données
Workbooks.Open cheminfichier
' Récupération du nom du classeur + extension
For i = Len(cheminfichier) To 1 Step -1
If Mid(cheminfichier, i, 1) = "\" Then Exit For
Next
nomfichier = Mid(cheminfichier, i + 1, Len(cheminfichier))
' Étapes permettant de filtrer et de copier les données dans le fichier de calibration en fonction du choix de l'utilisateur.
With Worksheets("source")
.AutoFilterMode = False 'Assure que countrow inclut toutes les lignes.
countrow = .Cells(.Rows.Count, "A").End(xlUp).Row
.Range("$A$1:$BF$" & countrow & "").AutoFilter Field:=1, Criteria1:=" <> " 'Région_adm"
.Range("$A$1:$BF$" & countrow & "").AutoFilter Field:=11, Criteria1:=" <> " 'Matériaux"
' i = 1
' Set Criteria = materiau(i, 1)
'
' ActiveSheet.Range("$A$1:$BF$" & countrow & "").AutoFilter Field:=8, CriteriaRange:=materiau(), Operator:=xlFilterValues, Operator:=xlAnd
'CriteriaRange:=[Feuil2].Range("A1:B2")
' Macro1 permet de filtrer les données à partir de la base de données globale qui se trouve dans un autre fichier Excel appelé nomfichier.
' Elle importe les données de calibration en fonction du choix (région et matériau) de l'utilisateur.
Dim i As Integer
Dim countrow As Long
Dim region As String
Dim materiau() As Variant
Dim Criteria As Object
Application.ScreenUpdating = False
' Néttoyage de l'onglet "Données_Calibration" pour enlever les données du choix précedent.
region = Worksheets("Menu").Range("C3").Value
materiau = Worksheets("Menu").Range("C7:C13").Value
With Worksheets("Données_Calibration")
.Range(.Rows("9:9"), .Rows("9:9").End(xlDown)).ClearContents
End With
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Application.DisplayAlerts = False
' Ouverture du fichier "nom fichier" contenant la base de données globale.
' Sélection du classeur source à partir d'une fenêtre
cheminfichier = Application.GetOpenFilename("Fichiers Excels (*.xlsx), *.xlsx")
' Si on clique sur Annuler dans la fenêtre, on sort de la boucle
If cheminfichier = False Then
Exit Sub
End If
'Ouverture du classeur source contenant les données
Workbooks.Open cheminfichier
' Récupération du nom du classeur + extension
For i = Len(cheminfichier) To 1 Step -1
If Mid(cheminfichier, i, 1) = "\" Then Exit For
Next
nomfichier = Mid(cheminfichier, i + 1, Len(cheminfichier))
' Étapes permettant de filtrer et de copier les données dans le fichier de calibration en fonction du choix de l'utilisateur.
With Worksheets("source")
.AutoFilterMode = False 'Assure que countrow inclut toutes les lignes.
countrow = .Cells(.Rows.Count, "A").End(xlUp).Row
.Range("$A$1:$BF$" & countrow & "").AutoFilter Field:=1, Criteria1:=" <> " 'Région_adm"
.Range("$A$1:$BF$" & countrow & "").AutoFilter Field:=11, Criteria1:=" <> " 'Matériaux"
' i = 1
' Set Criteria = materiau(i, 1)
'
' ActiveSheet.Range("$A$1:$BF$" & countrow & "").AutoFilter Field:=8, CriteriaRange:=materiau(), Operator:=xlFilterValues, Operator:=xlAnd
'CriteriaRange:=[Feuil2].Range("A1:B2")
Bonjour, voici mon code, il n'est pas complet car je ne sais plus quoi ajouter ou enlever.
Je suis pas à l'aise dans VBA.
Je suis pas à l'aise dans VBA.
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
peux-tu partager le premier code que tu avais écrit et qui marchait presque?