Boostez vos compétences Excel avec notre communauté !
Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force.
Apprenez, échangez, progressez – et tout ça gratuitement !
👉 Inscrivez-vous maintenant !
Bonjour tout le monde, étant débutant de VBa je suis bloqué et demande de l'assistance auprès d'utilisateurs plus aguerris. J'aimerais trouver un code qui me permet de dans un tableau "DB" de sélectionner les lignes de la Colonne "F" n'ayant pas de cellule vide, de les sélectionner et regrouper sur une autre feuille "FinalDB". Merci d'avance
M'est avis que si tu joignais un fichier exemple, tu aurais surement plus de réponses 🙄
Si tu avais lu la charte du forum, tu aurais joins ton fichier exemple dès ton premier message 😉
Et dans la même charte, la lecture de ceci
La Charte à dit:
2.2 – Tous les membres du forum répondent gracieusement aux questions. Il n’y a donc aucune obligation de résultat et de délai. Les mots URGENT, SOS, AU SECOURS sont donc à bannir.
Merci pour vos remarques et à chacun sa compréhension, je sollicite l'expertise de personnes plus avisés humblement donc ne me faire pas dire ce que j'ai pas dis. Dans le tableau ci-joint la feuille non triée et la feuille triée comme je la veux. “La connaissance, c'est partager le savoir qui nous fait grandir.”[Olivier LOCKERT]
Solution trouvée Merci a toi qui partage ton savoir. Bref le Code regle mon probléme. Le voici pour les autres qui cherchent comme moi.
Sub Tridata( )
Application.ScreenUpdating = False
With Sheets("FinalDB")
.Cells.ClearContents
.Cells.Borders.LineStyle = xlNone
End With
With Sheets("BD")
.Range("A1").CurrentRegion.AutoFilter field:=6, Criteria1:="<>"
.Range("A1").CurrentRegion.SpecialCells(xlVisible).Copy Sheets("FinalDB").Range("A1")
If .FilterMode = True Then .ShowAllData
End With
With Sheets("FinalDB")
.Columns.HorizontalAlignment = xlCenter: .Columns.AutoFit
.Range("A1").CurrentRegion.Borders.Weight = xlThin
End With
End Sub
Donc comme je le disais au message#2
Ma version avec le filtre avancé
VB:
Sub Macro1()Dim F As Worksheet:Set F = Feuil3
F.[K2].FormulaR1C1 ="=BD!RC[-6]<>"""""
Sheets("BD").Cells(1).CurrentRegion.AdvancedFilter Action:=2, CriteriaRange:=F.[K1:K2], CopyToRange:=F.[A1]
F.Cells(1).CurrentRegion.Columns.AutoFit: F.[K2] =""EndSub
Le double débutant(*) que tu es (en VBA et sur le forum), ignore sans doute que les vieux de la vieille Plus de 15 ans que je suis membre de ce forum tel que moi, qu'on appelle "les répondeurs" testent toujours leur formule ou leur code VBA avant de le poster.
Ce que je n'ai pas manquer de faire.
Donc pas rancunier pour un sou, j'ai ajouté
1) des commentaires explicatifs dans le code de ma macro
VB:
Sub Macro1_B()'Déclarations des variablesDim F As Worksheet
'ici Feuil3 correspond au codename de la feuille : FinalDBSet F = Feuil3
'on inscrit en K2 une formule qui sert de critère pour le filtre avancé
F.[K2].FormulaR1C1 ="=BD!RC[-6]<>"""""'Ici on exploite le filtre avancé avec l'option Copier vers l'emplacement (ici vers la feuille BD en A1)
Sheets("BD").Cells(1).CurrentRegion.AdvancedFilter Action:=2, CriteriaRange:=F.[K1:K2], CopyToRange:=F.[A1]
'ici on formate les colonnes puis on efface le contenu de la cellule K2 de la feuille FinalDB
F.Cells(1).CurrentRegion.Columns.AutoFit: F.[K2] =""'tests OK sur Excel 2013 et Excel 2019EndSub
2) une copie d'écran qui prouve que le code proposé fonctionne 😉
(ce je savais puisque je l'ai écrit et testé dans ton classeur exemple)
NB: Pour respecter la charte du forum, j'ai masqué les noms qui apparaissent dans ton classeur (car tu ne précises pas si ils sont fictifs ou pas)
(*) le mot débutant n'a rien de péjoratif dans ma prose.
On a tout débuter un jour avec Excel.
Il se trouve juste que moi, c'était en 1992.
- Navigue sans publicité - Accède à Cléa, notre assistante IA experte Excel... et pas que... - Profite de fonctionnalités exclusives Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel. Je deviens Supporter XLD