Sub Recherche_Devis_a_faire() Dim ThClect As String, _ ThCcherche As String Dim ThCboucl As Integer, _ ThCcopy As Integer ThCcopy = 1 ThCcherche = "x" For ThCboucle = 1 To 1 000 If Sheets(1).Cells(ThCboucle, 1) = "" Then Exit For If Sheets(1).Cells(ThCboucle, 99) = ThCcherche Then Rows(ThCboucle).Select Selection.Copy Sheets(2).Rows(ThCcopy).PasteSpecial ThCcopy = ThCcopy + 1 End If Next ThCboucle End Sub
Sub Recherche_Devis_a_faire() Dim ThClect As String, _ ThCrecherch As String Dim ThCboucl As Integer, _ ThCcopy As Integer ThCcopy = 1 ThCboucl = 1 ThCcherche = "x" Do ThClect = Sheets(1).Cells(ThCboucl, 1) If Sheets(1).Cells(ThCboucl, 99) = ThCcherche Then Rows(ThCboucl).Select Selection.Copy Sheets(2).Rows(ThCcopy).PasteSpecial ThCcopy = ThCcopy + 1 End If ThCboucl = ThCboucl + 1 Loop While ThClect <> "" End Sub
Function AutoFilterOn(Nom_Feuille As String, Nom_range As Range) ' Active la feuille concernée Sheets(Nom_Feuille).Activate ' Vérifie si un filtre existe, si non.. active le mode filtre If Not ActiveSheet.AutoFilterMode Then ActiveSheet.Range(Nom_range).AutoFilter End If End Function
Function AutoFilterOn(Nom_Feuille As String, Nom_range As String, charFiltre As String, NumField As Integer) '-------------------------------------- 'Activer le mode Filtre automatique '-------------------------------------- 'NumField : N° colonne où filtrer 'charFiltre : caractère recherché ' Active la feuille concernée Sheets(Nom_Feuille).Activate ' Vérifie si un filtre existe, si non.. active le mode filtre If Not ActiveSheet.AutoFilterMode Then ActiveSheet.Range(Nom_range).AutoFilter Field:=NumField, Criteria1:=charFiltre End If End Function ' Exemple d'utilisation : Sub Macro1() ' Lance le filtre : Fi = AutoFilterOn("Feuil1", "$A$1:$A$12", "z", 1) End Sub
'Copier les données filtrées Function Copie_Result_Filtre(NomFeuille1 As String, NomFeuille2 As String) As Boolean 'NomFeuille1 = Feuille contenant les données filtrées 'NomFeuille2 = Feuille qui recevra les données Sheets(NomFeuille1).Activate Selection.SpecialCells(xlCellTypeVisible).Select Selection.Copy Sheets(NomFeuille2).Select ActiveSheet.Paste Application.CutCopyMode = False '--------------------------------------- ' Enlever la fenêtre de selection ActiveSheet.Range("A1").Select Sheets(NomFeuille1).Activate ActiveSheet.Range("A1").Select '--------------------------------------- End Function
3 déc. 2013 à 20:28
J'ai noté une faute :
- ' dans l'onglet 1, et la copy dans l'onglet 2
- copy s'écrit copie
plus une erreur de frappe dans le code 2 :
- ThCrecherch As String
est plutôt
- ThCrecherche As String
je rajoute ce commentaire car je n'ai pas trouvé comment corriger ces erreurs.
.