XL pour MAC Sélectionner plage de cellules en fonction de dates

CM1090

XLDnaute Nouveau
Bonjour,
Je souhaiterais copier une partie de tableau en choisissant une plage de dates (en vrai, ce sera sur une autre feuille).
Les dates et la durée peuvent varier (Q2 et S2 sur mon exemple).
La partie de tableau correspondante est copiée (avec les formats si possible 😉).
Si possible, j'aimerais pouvoir rajouter les sommes journalières, voire par semaine après choix de la plage de date ...
Merci d'avance pour votre aide ! Je vous mets un bout de tableau en pj (l'original est un peu plus lourd :cool: mais je peux me débrouiller à partir de cet exemple 💪).
Christophe
 

Pièces jointes

  • ex dates.xlsm
    113.4 KB · Affichages: 6

CM1090

XLDnaute Nouveau
Bonjour CM,
Un essai en PJ avec une macro VBA, il suffit d'appuyer sur le bouton. :)
Bonjour Sylvanu,
Ca fonctionne exactement comme ça devrait sur ta feuille (4ème feuille du fichier que je joins : Feuil1) !
Ben voilà, j'ai essayé de retranscrire la Macro sur ma feuille "Note de Frais" (avec infos sur feuille "Frais"), mais sans succès ! :( ...
Je remets en pj le fichier exemple avec le vrai fichier sur les 2 1ères pages (Frais, et Note de Frais).
Frais est la feuille de départ (là où je rentre les données à récupérer).
En choisissant les dates début et fin sur la feuille "Note de Frais" en J11 et J12, et en lançant le calcul avec le bouton bleu "importer", il faudrait que s'affiche le résultat comme sur l'exemple initial ...
Merci pour ton aide ! :)
Christophe
 

Pièces jointes

  • exdates2.xlsm
    342.3 KB · Affichages: 3

job75

XLDnaute Barbatruc
Bonjour CM1090, sylvanu,

Voyez le fichier joint et la macro du bouton :
VB:
Sub Importer()
Dim F As Worksheet, coldeb As Variant, colfin As Variant
Set F = Sheets("Notes de Frais")
Application.ScreenUpdating = False
F.[N17:ABO49].Clear 'RAZ
With Sheets("Frais")
    coldeb = Application.Match(F.[J11], .[17:17], 0)
    colfin = Application.Match(F.[J12], .[17:17], 0)
    If IsError(coldeb) Or IsError(colfin) Then Exit Sub
    .Range(.Cells(17, coldeb), .Cells(46, colfin)).Copy F.[N17] 'copier-coller
    .Range(.Cells(54, coldeb), .Cells(54, colfin)).Copy F.[N48] 'pour les formats
    .Range(.Cells(68, coldeb), .Cells(68, colfin)).Copy F.[N49] 'pour les formats
    F.[N48].Resize(, colfin - coldeb + 1) = .Range(.Cells(54, coldeb), .Cells(54, colfin)).Value 'copie les valeurs
    F.[N49].Resize(, colfin - coldeb + 1).HorizontalAlignment = xlCenterAcrossSelection 'centrage
    F.[N49] = Application.Sum(F.[N48].Resize(, colfin - coldeb + 1)) 'TOTAL Periode
End With
End Sub
Il y avait des erreurs dans vos formules de la feuille "Frais", je les ai corrigées.

A+
 

Pièces jointes

  • exdates2.xlsm
    303.6 KB · Affichages: 9

CM1090

XLDnaute Nouveau
Bonjour CM1090, sylvanu,

Voyez le fichier joint et la macro du bouton :
VB:
Sub Importer()
Dim F As Worksheet, coldeb As Variant, colfin As Variant
Set F = Sheets("Notes de Frais")
Application.ScreenUpdating = False
F.[N17:ABO49].Clear 'RAZ
With Sheets("Frais")
    coldeb = Application.Match(F.[J11], .[17:17], 0)
    colfin = Application.Match(F.[J12], .[17:17], 0)
    If IsError(coldeb) Or IsError(colfin) Then Exit Sub
    .Range(.Cells(17, coldeb), .Cells(46, colfin)).Copy F.[N17] 'copier-coller
    .Range(.Cells(54, coldeb), .Cells(54, colfin)).Copy F.[N48] 'pour les formats
    .Range(.Cells(68, coldeb), .Cells(68, colfin)).Copy F.[N49] 'pour les formats
    F.[N48].Resize(, colfin - coldeb + 1) = .Range(.Cells(54, coldeb), .Cells(54, colfin)).Value 'copie les valeurs
    F.[N49].Resize(, colfin - coldeb + 1).HorizontalAlignment = xlCenterAcrossSelection 'centrage
    F.[N49] = Application.Sum(F.[N48].Resize(, colfin - coldeb + 1)) 'TOTAL Periode
End With
End Sub
Il y avait des erreurs dans vos formules de la feuille "Frais", je les ai corrigées.

A+
Wahooo ! Super !!!! Merci beaucoup ! Ca fonctionne très bien !
 

Discussions similaires

Statistiques des forums

Discussions
312 176
Messages
2 085 961
Membres
103 066
dernier inscrit
bobfils