comment automatiser les données d'une feuille à l'autre

clapas

XLDnaute Nouveau
Bonjour à tous,
Une fois de plus j'ai recours à vos compétences
J'ai des feuilles qui ont la même structure et j'aimerais pouvoir transférer les saisies d'une feuille sur une autre le détail du problème est complexe à expliquer et un petit fichier exemple me semble plus approprié.
je vous remercie tous si vous prenez de votre temps pour m'apporter une aide
 

Pièces jointes

  • exemple club.xlsm
    15.2 KB · Affichages: 70

clapas

XLDnaute Nouveau
tout d'abord merci
ce petit fichier demande certainement plus d'explications
Dans la feuille 2 la colonne "ramassage" recense les différents points
la colonne "nom prénom" le nom du payeur (qui acquitte pour le compte de .. IE les personnes saisies dans les 4 colonnes suivantes)
la feuille"RAMASSAGE" reprend les points de ramassage, j'aimerais que dans cette feuille soit repris tous les noms des personnes qui ont choisi un point précis de ramassage, par exemple que dans la colonne "CLUB" apparaissent les noms DUBOIS, VERMOULU, VINCENT saisis feuille2 en C10 D11
je ne suis pas expert en VBA mais me débrouille comme un débutant (un peu seul dans son coin)
merci encore même si rien ne presse
CLAPAS
 

clapas

XLDnaute Nouveau
tout d'abord merci
ce petit fichier demande certainement plus d'explications
Dans la feuille 2 la colonne "ramassage" recense les différents points
la colonne "nom prénom" le nom du payeur (qui acquitte pour le compte de .. IE les personnes saisies dans les 4 colonnes suivantes)
la feuille"RAMASSAGE" reprend les points de ramassage, j'aimerais que dans cette feuille soit repris tous les noms des personnes qui ont choisi un point précis de ramassage, par exemple que dans la colonne "CLUB" apparaissent les noms DUBOIS, VERMOULU, VINCENT saisis feuille2 en C10 D11
je ne suis pas expert en VBA mais me débrouille comme un débutant (un peu seul dans son coin)
merci encore même si rien ne presse
CLAPAS
 

clapas

XLDnaute Nouveau
re Bonjour
Un grand merci, un minimum d'étude de ma part permettra de l'adapter aux quelques 15 feuilles qui devront
être créer (une par prestation) . Il est clair que si mon problème, que vous avez résolu, peut profiter à d'autres (les noms sont fantaisistes) cela peut être divulgué.
Encore merci
CLAPAS
 

clapas

XLDnaute Nouveau
Tout d'abord merci de cette réponse rapide je suis dans le même cas mais avec un arrière petit qui n'est pas en age d'apporter un soutien quelconque
je suppose que pour que l'affichage puisse se faire en fonction de la feuille sélectionnée il faudra ajouter à la macro une instruction du type
Dim nomfeuille As String
nomfeuille = ActiveSheet.Name
et l'insérer aux endroits nécessaires
est ce que cela est cohérent ? sachant qu'il y aura sans doute une 15aine de feuille (une par activité)
de plus il serait souhaitable qu'une impression se fasse également mais çà je pourrais peut être m'en débrouiller
Encore merci et à bientôt peut être
CLAPAS
 

vgendron

XLDnaute Barbatruc
re moi
pas sur d'avoir compris le besoin avec les 15 feuilles..
dans la feuille RAMASSAGE, tu veux récuperer les infos de toutes les autres feuilles ?
dans ce cas
VB:
Sub ramassage()
Dim tablo() As Variant
Dim tabRamass() As Variant

Application.ScreenUpdating = False
Sheets("RAMASSAGE").Range("C4").CurrentRegion.Offset(2, 0).ClearContents
For Each ws In Worksheets
    If ws.Name <> "RAMASSAGE" And ws.Name <> "données" Then
        tablo = ws.Range("B5").CurrentRegion.Value 'permet de récuperer le contenu du tablo "B5:J24"  dans un tablo
        tabRamass = Sheets("RAMASSAGE").Range("C4").CurrentRegion.Value 'permet de récupere la liste des points de ramassage
        For i = LBound(tabRamass, 2) To UBound(tabRamass, 2)
            PointRamassage = tabRamass(2, i)
            For j = LBound(tablo, 1) + 1 To UBound(tablo, 1)
                If tablo(j, 1) = PointRamassage Then
                    For k = 2 To 6
                        If tablo(j, k) <> "" Then
                            Sheets("RAMASSAGE").Cells(Rows.Count, i + 2).End(xlUp).Offset(1, 0) = tablo(j, k)
                        End If
                    Next k
                End If
            Next j
        Next i
    End If
Next ws
Application.ScreenUpdating = True
End Sub
 

clapas

XLDnaute Nouveau
re moi
pas sur d'avoir compris le besoin avec les 15 feuilles..
dans la feuille RAMASSAGE, tu veux récuperer les infos de toutes les autres feuilles ?
dans ce cas
VB:
Sub ramassage()
Dim tablo() As Variant
Dim tabRamass() As Variant

Application.ScreenUpdating = False
Sheets("RAMASSAGE").Range("C4").CurrentRegion.Offset(2, 0).ClearContents
For Each ws In Worksheets
    If ws.Name <> "RAMASSAGE" And ws.Name <> "données" Then
        tablo = ws.Range("B5").CurrentRegion.Value 'permet de récuperer le contenu du tablo "B5:J24"  dans un tablo
        tabRamass = Sheets("RAMASSAGE").Range("C4").CurrentRegion.Value 'permet de récupere la liste des points de ramassage
        For i = LBound(tabRamass, 2) To UBound(tabRamass, 2)
            PointRamassage = tabRamass(2, i)
            For j = LBound(tablo, 1) + 1 To UBound(tablo, 1)
                If tablo(j, 1) = PointRamassage Then
                    For k = 2 To 6
                        If tablo(j, k) <> "" Then
                            Sheets("RAMASSAGE").Cells(Rows.Count, i + 2).End(xlUp).Offset(1, 0) = tablo(j, k)
                        End If
                    Next k
                End If
            Next j
        Next i
    End If
Next ws
Application.ScreenUpdating = True
End Sub
 

clapas

XLDnaute Nouveau
en réalité chaque feuille correspondrait à un voyage ou déplacement; le but réel est de pouvoir vérifier l'embarquement dans les cars en fonction de leur circuit de ramassage. Il ne s'agit donc pas de tout récupérer sur la même feuille "RAMASSAGE" mais de récupérer pour chaque voyage (donc chaque feuille)
la liste de gens participant au voyage concerné et de les rassembler en fonction de leur choix fait du lieu de ramassage. Il me suffira dès lors d'imprimer la feuille en ajoutant le nom du voyage ou du déplacement encore une fois merci
CLAPAS
 

vgendron

XLDnaute Barbatruc
alors peut etre ceci pour récuperer les infos d'un voyage en particulier dont le nom est mis en C1 de la feuille ramassage
VB:
Sub ramassage()
Dim tablo() As Variant
Dim tabRamass() As Variant

Application.ScreenUpdating = False
Sheets("RAMASSAGE").Range("C4").CurrentRegion.Offset(2, 0).ClearContents
NomVoyage = Sheets("RAMASSAGE").Range("C1")

        tablo = Sheets(NomVoyage).Range("B5").CurrentRegion.Value 'permet de récuperer le contenu du tablo "B5:J24"  dans un tablo
        tabRamass = Sheets("RAMASSAGE").Range("C4").CurrentRegion.Value 'permet de récupere la liste des points de ramassage
        For i = LBound(tabRamass, 2) To UBound(tabRamass, 2)
            PointRamassage = tabRamass(2, i)
            For j = LBound(tablo, 1) + 1 To UBound(tablo, 1)
                If tablo(j, 1) = PointRamassage Then
                    For k = 2 To 6
                        If tablo(j, k) <> "" Then
                            Sheets("RAMASSAGE").Cells(Rows.Count, i + 2).End(xlUp).Offset(1, 0) = tablo(j, k)
                        End If
                    Next k
                End If
            Next j
        Next i

Application.ScreenUpdating = True
End Sub
 

Discussions similaires