copier coller des lignes de différents onglets dans un nouvel onglet avec variable

BrunoBTS

XLDnaute Nouveau
Bonjour à tous

Ne connaissant pas assez bien VBA, je me retrouve démuni pour résoudre mon problème. Et si j'ai trouvé quelques pistes en fouillant dans le forum je n'ai pas trouvé de solutions adaptées à mon cas.
Aussi je fais appel à l'entraide pour me dépanner.

Voici mon problème :

Je fais une extraction qui sort un fichier EXCEL comprenant :
un onglet "reporting"
des onglets de semaine : S1, S2, ....., S25 etc de rendez vous qui sont classés dans ces onglets semaines.
un onglet comporte donc les rendez vous prévus pendant cette semaine.

Toutefois j'ai besoin une fois par mois de regrouper toutes ces lignes présentes dans les différents onglets non pas par DATE du RENDEZ VOUS mais par DATE de PRISE du RENDEZ VOUS ( un rdv peut être pris le lundi 4/6/14 à 9h pour le Mercredi 6/7/14 à 17h)

Aussi voici ce que devrait faire la Macro idéalement :

1 me demander où est le fichier source à scanner
2 me demander quel mois la macro doit vérifier ( ici Juin par exemple)
3 scanner les onglets S1, S2, S3, etc jusqu'au dernier onglet présent dans le fichier source en vérifiant à chaque ligne si la DATE de PRISE du RDV ( colonne A de chaque onglet S1, S2, etc) correspond au mois recherché, ( Juin ici )
4 recopier alors si la condition est vrai ces lignes à la suite soit dans un nouvel onglet se nommant par le mois recherché ou dans un nouveau fichier à part, suivant ce qui est plus simple.

En résumé j'ai donc un fichier qui classe par semaine des Rendez vous par date de rendez vous et il me faut pouvoir regrouper ces rendez vous , cette fois par mois , mais non pas par date du rendez vous mais par date à la quelle a été pris le RDV.

J'espère avoir été suffisamment clair et que vous pourrez m'aider

Merci d'avance

Bruno
 

Pièces jointes

  • Rapport Validation_test.xlsm
    112.7 KB · Affichages: 27

titiborregan5

XLDnaute Accro
Re : copier coller des lignes de différents onglets dans un nouvel onglet avec varia

Bonjour bruno et bienvenue sur le forum!

alors pour répondre à ta question 1:
j'utilise le code suivant
VB:
Private Sub CommandButton1_Click()
nf = Application.GetOpenFilename("fichiers Xls,*.xls")
    If Not nf = False Then
        Workbooks.Open Filename:=nf
    End If
End Sub

Pour 2-3-4 je ferai ça avec le filtre élaboré (advancedfilter)!

J'essaie de te proposer qqch rapidement!!
A+

tibo
 

titiborregan5

XLDnaute Accro
Re : copier coller des lignes de différents onglets dans un nouvel onglet avec varia

Bonjour bruno et bienvenue sur le forum!

alors pour répondre à ta question 1:
j'utilise le code suivant
VB:
Private Sub CommandButton1_Click()
nf = Application.GetOpenFilename("fichiers Xls,*.xls")
    If Not nf = False Then
        Workbooks.Open Filename:=nf
    End If
End Sub

Pour 2-3-4 je ferai ça avec le filtre élaboré (advancedfilter)!

J'essaie de te proposer qqch rapidement!!
A+

tibo

Le code complet pourrait donner qqch comme ça...
à adapter et tester plus profondément car marche chez moi mais comme j'ai pas Excel 2007/2010 je galère pour les tests...

VB:
Dim M As String
Sub Bouton1_QuandClic()
nf = Application.GetOpenFilename("fichiers Xls,*.xls*")
    If Not nf = False Then
        Workbooks.Open Filename:=nf
    M = InputBox("Choisir mois", "Choisir mois")

Sheets.Add after:=Sheets(Sheets.Count)
ActiveSheet.Name = M
Sheets(3).Range("a1:u1").Copy Sheets(M).Range("b1:v1")
Sheets(M).Range("a1") = "Mois"

Sheets(M).Range("x1") = "Mois"
Sheets(M).Range("x2") = M

For i = 2 To Sheets.Count - 1
Sheets(i).AutoFilterMode = False

Sheets(i).Columns("a").Insert
Sheets(i).Range("a1") = "Mois"
    For j = 2 To Sheets(i).Range("b65000").End(xlUp).Row
Sheets(i).Cells(j, 1) = Format(Sheets(i).Cells(j, 2), "mmmm")
    Next
Sheets(i).Range("a1").CurrentRegion.AdvancedFilter xlFilterCopy, Sheets(M).Range("x1:x2"), Sheets(M).Range("a1:v1"), True

Next
   End If
End Sub
 

BrunoBTS

XLDnaute Nouveau
Re : copier coller des lignes de différents onglets dans un nouvel onglet avec varia

Bonjour bruno et bienvenue sur le forum!

alors pour répondre à ta question 1:
j'utilise le code suivant
VB:
Private Sub CommandButton1_Click()
nf = Application.GetOpenFilename("fichiers Xls,*.xls")
    If Not nf = False Then
        Workbooks.Open Filename:=nf
    End If
End Sub

Pour 2-3-4 je ferai ça avec le filtre élaboré (advancedfilter)!

J'essaie de te proposer qqch rapidement!!
A+

tibo

Bonjour Merci pour ce début de solution :)

Intégrée et ça marche super :)
 
Dernière édition:

BrunoBTS

XLDnaute Nouveau
Re : copier coller des lignes de différents onglets dans un nouvel onglet avec varia

C'est déjà ça!!
Et la suite?
j'avais un pb sur le filtre élaboré je crois, alors que de manière manuelle ça marchait...
mess erreur.JPG



Re bonjour

Première erreur " nom de champ introuvable" j'ai trouvé c'est parceque il y a eu entre les premiere semaine de l'année et les dernière un ajout de colonne : en supprimant les onglets des premières semaines la macro continue

Toutefois j'ai un nouveau message d'erreur :mess erreur.JPG

cette commande requiert au moins deux lignes de données sources vous ne pouvez pas l'utiliser sur une seule ligne de données. essayez la methode suivante :
si vous utilisez un filtre avancé sélectionnez une plage de cellule qui contient au moins deux lignes de données. puis cliquez a nouveaux sur la commande filtre élaboré
 

Pièces jointes

  • mess erreur.JPG
    mess erreur.JPG
    29.8 KB · Affichages: 52

titiborregan5

XLDnaute Accro
Re : copier coller des lignes de différents onglets dans un nouvel onglet avec varia

essaie de rajouter en dessous de
Code:
Sheets(3).Range("a1:u1").Copy Sheets(M).Range("b1:v1")
Sheets(M).Range("a1") = "Mois"
VB:
sheets(m).range("a2")=M
... peut-être que...

je n'avais pas cette erreur sur ma version je crois!
 

Discussions similaires

Statistiques des forums

Discussions
312 215
Messages
2 086 338
Membres
103 192
dernier inscrit
Corpdacier