Autres Copie et classification de ligne par mots clés

brice2020

XLDnaute Nouveau
Mesdames, Messieurs, bonjour

J'ai un fichier Excel regroupant une liste non exhaustive d'utilisateurs d'imprimante 3D. Ce fichier comporte plusieurs feuilles (Listing, mots clés, FDM, stéréo et polyjet).
Je souhaiterai copier automatiquement des lignes de la feuille "listing", sélectionner à partir des mots clés, et les coller automatique dans les feuilles correspondant aux technologies correspondant à ces mots clés.

Quelqu'un aurait-il une solution simple à me proposer sachant que je suis débutant sur Excel?

Merci d'avance et bonne journée

Brice
 

Pièces jointes

  • Recensement listing.xlsx
    21.1 KB · Affichages: 18
Solution
Bonjour brice2020, bienvenue sur XLD, salut Roblochon,

Les cellules fusionnées ne sont pas gênantes, voyez le fichier joint et cette macro dans ThisWorkbook :
VB:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim a, R As Range, i&, rc&, j&
a = Array("FDM", "Stéréo", "Polyjet") 'liste à adapter
If IsError(Application.Match(Sh.Name, a, 0)) Then Exit Sub
Application.ScreenUpdating = False
Sh.[A1].CurrentRegion.EntireRow.Delete 'RAZ
With Sheets("mot clés")
    Set R = .Cells.Find(Sh.Name, , xlValues, xlWhole)
    If R Is Nothing Then Exit Sub
    i = R.End(xlDown).Row
    If i = .Rows.Count Then Exit Sub
    Set R = R(2).Resize(i - R.Row)
    rc = R.Count
End With
Sheets("Listing").[A1].CurrentRegion.Copy Sh.[A1]
With...

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

Pourriez-vous préciser votre version excel ?
Travaillez sur des cellules fusionnées complique beaucoup les choses.
Pour vous servir de votre listing comme d'une 'base de donnée', il faut vraiment un enregistrement par ligne. Quite à répéter les Noms et Prénoms pour ne pas laisser de cellules vides pour ces champs.
Les autres champs peuvent avoir des cellules vides.
Défusionnez également les colonnes.

Généralement on réserve la fusion des cellules aux documents finaux à imprimer ou présenter, alimentés par la 'base de données'

confirmez que la recherche des critères doit se faire sur les 3 dernières colonnes.

cordialement
 
Dernière édition:

job75

XLDnaute Barbatruc
Bonjour brice2020, bienvenue sur XLD, salut Roblochon,

Les cellules fusionnées ne sont pas gênantes, voyez le fichier joint et cette macro dans ThisWorkbook :
VB:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim a, R As Range, i&, rc&, j&
a = Array("FDM", "Stéréo", "Polyjet") 'liste à adapter
If IsError(Application.Match(Sh.Name, a, 0)) Then Exit Sub
Application.ScreenUpdating = False
Sh.[A1].CurrentRegion.EntireRow.Delete 'RAZ
With Sheets("mot clés")
    Set R = .Cells.Find(Sh.Name, , xlValues, xlWhole)
    If R Is Nothing Then Exit Sub
    i = R.End(xlDown).Row
    If i = .Rows.Count Then Exit Sub
    Set R = R(2).Resize(i - R.Row)
    rc = R.Count
End With
Sheets("Listing").[A1].CurrentRegion.Copy Sh.[A1]
With Sh.[A1].CurrentRegion
    For i = .Rows.Count To 2 Step -1
        For j = 1 To rc
            If Not .Rows(i).Find(R(j), , xlValues, xlPart) Is Nothing Then Exit For
        Next j
        If j > rc Then .Rows(i).EntireRow.Delete 'supprime la ligne si aucun mot clé n'a été trouvé
    Next i
End With
With Sh.UsedRange: End With 'actualise les barres de défilement
End Sub
Elle se déclenche quand on active une feuille.

A+
 

Pièces jointes

  • Recensement listing(1).xlsm
    29.9 KB · Affichages: 11

job75

XLDnaute Barbatruc
Les cellules fusionnées ne sont pas gênantes

Un bémol cependant : quand des cellules sont fusionnées, le renvoi à la ligne ne permet pas d'ajuster automatiquement la hauteur de ligne.

Voyez comment sont copiées en "FDM" les cellules fusionnées C4 et D4 de la feuille "Listing".

Il vaut mieux :

- les défusionner

- les centrer horizontalement sur les 2 colonnes.
 

Statistiques des forums

Discussions
312 193
Messages
2 086 062
Membres
103 110
dernier inscrit
Privé