Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

copier suivant date en vba

BZH56

XLDnaute Occasionnel
bonsoir a tous

debutant en vba n je voudrais recopier des valeurs d une colonne en fonction de la date sur une autre feuille mensuelle.
ci joint un exemple
merci
 

Pièces jointes

  • bzh14.xls
    36.5 KB · Affichages: 57

Robert

XLDnaute Barbatruc
Repose en paix
Re : copier suivant date en vba

Bonsoir BZH, bonsoir le forum,

En pièce jointe ton fichier modifié avec le code ci-dessous appliqué au bouton :
Code:
Private Sub CommandButton1_Click()
Dim d As String 'déclare la variable d (Date)
Dim m As String 'déclare la variable m (numéro du Mois)
Dim mois As String 'déclare la variable mois
Dim dest As Range 'déclare la variable dest (DESTination)
ActiveCell.Select 'enlève le focus au bouton
d = Range("B1").Value 'définit la date d
m = Month(d) 'définit le numéro du mois m
Select Case m 'définit le mois en fonction du numéro du mois
    Case "1"
        mois = "janvier"
    Case "2"
        mois = "février"
    Case "3"
        mois = "mars"
    Case "4"
        mois = "avril"
    Case "5"
        mois = "mai"
    Case "6"
        mois = "juin"
    Case "7"
        mois = "juillet"
    Case "8"
        mois = "août"
    Case "9"
        mois = "septembre"
    Case "10"
        mois = "octobre"
    Case "11"
        mois = "novembre"
    Case "12"
        mois = "décembre"
End Select
Set dest = Sheets(mois).Range("A1").Offset(1, Day(d)) 'définit la cellule de destination
Range("B4:B17").Copy dest 'copie la plage B4:B17 et la colle dans la cellule de destination dest
End Sub
 

Pièces jointes

  • BZH_v01.xls
    57 KB · Affichages: 69

Pierrot93

XLDnaute Barbatruc
Re : copier suivant date en vba

Bonjour bzh, Robert

Petite remarque au passage, si je peux me permettre, le nom du mois peut également être renvoyé en utilisant la fonction "MonthName" :
Code:
m = MonthName(Month(d))

bonne journée
@+
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : copier suivant date en vba

Bonjour le fil, bonjour le forum,

Oui Pierrot merci pour ce renseignement mais chez moi avec ma configuration du clavier : Langue Portugais (Bresil) / Clavier USA International, ça renvoit les mois en anglais... d'où le Select Case.
 

Pierrot93

XLDnaute Barbatruc
Re : copier suivant date en vba

Re,

Langue Portugais (Bresil) / Clavier USA International, ça renvoit les mois en anglais... d'où le Select Case.
Aarf, oui dans ce cas...

allez, une autre approche pour le fun :

Code:
Dim m As Integer
m = Month(Date)
MsgBox Switch(m = 1, "janvier", m = 2, "février", m = 3, "mars")

@+
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : copier suivant date en vba

Bonjour le fil, bonjour le forum,

Ha oui Pierrot ! Là j'ai sorti mon burin et une feuille de marbre toute neuve de 25 kg et je vais me la graver illico presto. Je connaissais pas cette fonction Switch, merci pour l'astuce !
 

Pierrot93

XLDnaute Barbatruc
Re : copier suivant date en vba

Re,

en y réfléchissant, il y a aussi la fonction "choose", qui me parait plus adaptée, enfin moins longue....
Code:
Dim m As Integer
m = Month(Date)
MsgBox Choose(m, "janvier", "février", "mars")

encore une tablette de 25kg... bon après midi
@+
 

Pierrot93

XLDnaute Barbatruc
Re : copier suivant date en vba

Re,
bonjour PierreJean

Aarf, bien vu PierreJean, pourquoi faire simple quand on peut faire compliquer... Robert, tu peux jeter les tablettes... Aarf, pas sur ma tête...
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : copier suivant date en vba

Bonjour le fil, bonjour le forum,

Fondu, fondu c'est un peu vite dit BZH ! Je viens de me faire livrer deux camions de marbre avec ces co...ries... Tiens du coup je redeviens bleu !
 

BZH56

XLDnaute Occasionnel
Re : copier suivant date en vba

bonsoir robert
te fache pas, ton humour ne me laisse pas de marbre
Entre "barbatruc" , la rivalite est saine pour le forum et tout bénef pour nous les petits
"vba-istes".
mes hommages. et respect pour votre bienveillance a notre égard.
 

BZH56

XLDnaute Occasionnel
Re : copier suivant date en vba

Re

@ BZH

rivalité !! le vilain vocable
Je lui prefere émulation et souhaite que le Grand Robert partage mon opinion

bonjour a tous
ok pierrejean pour l'émulation, je suis d accord avec toi...
mais j 'ai une difficulté supplémentaire que je n ai pas vu arrive ,. Dans mon vrai fichier ,la zone a copié résulte d un calcul et le code que vous m'avez trouve me recopie aussi la formule..
je pensais m en sortir avec un collage special valeurs mais avec la variable qui est déclarée (dest) , je bloque a nouveau
alors , merci pour le dernier coup de pouce
 

Pièces jointes

  • BZH_v02.xls
    48 KB · Affichages: 49

Pierrot93

XLDnaute Barbatruc
Re : copier suivant date en vba

Bonjour à tous,

modifie ainsi :
Code:
Set dest = Sheets(mois).Range("A1").Offset(1, Day(d)) 'définit la cellule de destination
Range("c4:c17").Copy
dest.PasteSpecial xlPasteValues

bonne soirée
@+
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…