XL 2013 recopier dans d'autres feuilles des lignes en fonction d'un critère

dragon34

XLDnaute Nouveau
Bonjour à toutes et tous et d'avance merci pour votre aide.
Je souhaite que certaines lignes soient copiées dans d'autres feuilles de mon tableau en fonction de la colonne E
Chaque onglet (feuille) portant un prénom figurant dans cette colonne E
Avoir aussi la possibilité de choisir le prénom et d'ajouter autant d'onglets
J'espère être clair :)
Mon fichier en pièce jointe sera sans doute plus clair que mes requêtes
Milles merci.
 

Pièces jointes

  • TEST.xlsx
    11.4 KB · Affichages: 3

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Dragon,
Un essai en PJ avec cette macro qui s'exécute quand on sélectionne une feuille :
VB:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
    If ActiveSheet.Name = "Feuil1" Then Exit Sub
    Dim Tablo, i%, j%, L%
    Application.ScreenUpdating = False
    Tablo = Sheets("Feuil1").[A1].CurrentRegion
    L = 2: Nom = ActiveSheet.Name: Cells.Clear
    [A1] = "Date": [B1] = "Lieu": [C1] = "Motif": [D1] = "Ville"
    For i = 1 To UBound(Tablo)
        If Tablo(i, 5) = Nom Then
            For j = 1 To 4: Cells(L, j) = Tablo(i, j): Next j
            L = L + 1
        End If
    Next i
    Columns.AutoFit
End Sub
 

Pièces jointes

  • Dragon.xlsm
    20.3 KB · Affichages: 1

dragon34

XLDnaute Nouveau
Bonjour Dragon,
Un essai en PJ avec cette macro qui s'exécute quand on sélectionne une feuille :
VB:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
    If ActiveSheet.Name = "Feuil1" Then Exit Sub
    Dim Tablo, i%, j%, L%
    Application.ScreenUpdating = False
    Tablo = Sheets("Feuil1").[A1].CurrentRegion
    L = 2: Nom = ActiveSheet.Name: Cells.Clear
    [A1] = "Date": [B1] = "Lieu": [C1] = "Motif": [D1] = "Ville"
    For i = 1 To UBound(Tablo)
        If Tablo(i, 5) = Nom Then
            For j = 1 To 4: Cells(L, j) = Tablo(i, j): Next j
            L = L + 1
        End If
    Next i
    Columns.AutoFit
End Sub
Merci beaucoup, c'est juste parfait.
 
Dernière édition:

dragon34

XLDnaute Nouveau
Bonjour Dragon,
Un essai en PJ avec cette macro qui s'exécute quand on sélectionne une feuille :
VB:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
    If ActiveSheet.Name = "Feuil1" Then Exit Sub
    Dim Tablo, i%, j%, L%
    Application.ScreenUpdating = False
    Tablo = Sheets("Feuil1").[A1].CurrentRegion
    L = 2: Nom = ActiveSheet.Name: Cells.Clear
    [A1] = "Date": [B1] = "Lieu": [C1] = "Motif": [D1] = "Ville"
    For i = 1 To UBound(Tablo)
        If Tablo(i, 5) = Nom Then
            For j = 1 To 4: Cells(L, j) = Tablo(i, j): Next j
            L = L + 1
        End If
    Next i
    Columns.AutoFit
End Sub
Bonjour et encore merci,
Juste deux petits détails, comment supprimer l'ajustement automatique de la largeur de toutes les colonnes et comment autoriser le centrage du texte ?
Merci beaucoup.
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour,
C'est cette ligne qui ajuste automatiquement la largeur des colonnes :
VB:
 Columns.AutoFit
Supprimez la du code. Je l'ai mis "par reflexe". :rolleyes:

comment autoriser le centrage du texte ?
Qu'entendez vous par là ?
Il faut centrer le texte ou conserver les propriétés comme présentes sur la feuille ?
Si c'est la 2ème option, cela est déjà fait, les propriétés sont conservées si le code ne les modifie pas.
 

dragon34

XLDnaute Nouveau
Bonjour,
C'est cette ligne qui ajuste automatiquement la largeur des colonnes :
VB:
 Columns.AutoFit
Supprimez la du code. Je l'ai mis "par reflexe". :rolleyes:


Qu'entendez vous par là ?
Il faut centrer le texte ou conserver les propriétés comme présentes sur la feuille ?
Si c'est la 2ème option, cela est déjà fait, les propriétés sont conservées si le code ne les modifie pas.
Bien compris pour "autofit"
Concernant le centrage du texte je souhaiterais que le choix soit libre
 

Discussions similaires

Statistiques des forums

Discussions
313 205
Messages
2 096 209
Membres
106 531
dernier inscrit
ahmedahmed