Copier/coller en fonction de la semaine

Résolu
Signaler
Messages postés
180
Date d'inscription
vendredi 18 janvier 2008
Statut
Membre
Dernière intervention
22 novembre 2013
-
Messages postés
180
Date d'inscription
vendredi 18 janvier 2008
Statut
Membre
Dernière intervention
22 novembre 2013
-
Bonjour à toutes et tous,

dans mon petit progr, j'ai une feuille excel dans laquelle viennent s'additionner (dans la colonne G) les articles que j'ai vendu dans la semaine.
Dans une autre feuille excel, j'ai fait un tableau ou chaque colonne représente une semaine (j'ai placé 53 colonnes numérotées de 1 à 53!)
je souhaiterais, encliquant sur un bouton, couper les valeur se trouvant dans ma colonne G et les coller dans mon autre feuill excel, dans la colonne correspondant au numéro de semaine correspondant.

quelqu'un a une piste à me donner?...

un grand merci d'avance!

9 réponses

Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
Row("1")

ne rime a rien, sorry
Messages postés
180
Date d'inscription
vendredi 18 janvier 2008
Statut
Membre
Dernière intervention
22 novembre 2013

Salut Renfield,

Voici le code tel que je l'ai retravaillé et apprement, il fonctionne!! (je dis apparement, parce que il a bien collé mon résultat dans la semaine 13, faudra vérifier la semaine prochaine si ça colle toujours!)

peux tu me dire si il est correct ou si, malgrès qu'il fonctionne, il subiste des erreurs?

Encore merci pour ton aide!

Private Sub CommandButton2_Click()
Dim sem As Date
    sem = Format(Date, "WW", , vbFirstJan1)
Dim Recherche As Range
Set Recherche = Sheets("SauvegardeVente").Range("b1:bb53").Find(sem, LookIn:=xlValues)
    If Recherche Is Nothing Then
    Worksheets("Stock").Range("G3:G45").Copy
    ActiveSheet.Paste Destination:=Worksheets("SauvegardeVente").Range("A3").Offset(0, sem)
    End If
End Sub
Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
me parait correct....

possible de faire ca a deux autres endroits:

Private Sub CommandButton2_Click()
Dim sem As Long
sem = DatePart("WW", Date, , vbFirstJan1) +1
Worksheets("Stock").Range("G3:G45").Copy Worksheets("SauvegardeVente").Cells(3, sem)
End Sub

ou encore

Private Sub CommandButton2_Click()
Dim sem As Long
sem = DatePart("WW", Date, , vbFirstJan1)
Worksheets("Stock").Range("G3:G45").Copy Worksheets("SauvegardeVente").Cells(3, sem+1)
End Sub

pour ma part, je pencherais pour la dernière forme (on n'altere pas le numéro de la semaine, juste son utilisation)
Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
DatePart "WW" te donnera le numéro de la semaine en cours
Messages postés
1835
Date d'inscription
vendredi 13 mai 2005
Statut
Membre
Dernière intervention
20 novembre 2013
11
...

ou bien dans une cellule :

=arrondi.sup((aujourdhui()-("01/01/" & annee(aujourdhui()))+1)/7,0)

Tu peux aussi te faire une fonction perso a partir de ce que t'a donné Renfield

dans un module tu ecris :

Function SemaineEnCours()
  SemaineEnCours = DatePart("WW", Now, vbMonday, vbFirstJan1)
End Function

puis dans une cellule :

=SemaineEnCours()

ou dans ton code :

Dim MaSemaine as Long
MaSemaine = SemaineEnCours()

A+
Messages postés
180
Date d'inscription
vendredi 18 janvier 2008
Statut
Membre
Dernière intervention
22 novembre 2013

Bonjour Renfield, Bonjour BigFish,

voici le code que j'ai fait, mais il ne fonctionne pas (snif!)

il plante sur la ligne que j'ai mise en rouge (Erreur d'execution 438 : propriete ou methode non gérée par cet objet)

Private Sub CommandButton2_Click()
Dim i As Variant
i = Format(Date, "WW", , vbFirstJan1)
Dim Recherche As Range
Set Recherche = Sheets("SauvegardeVente").Row("1").Find(i, LookIn:=xlValues, lookat:=xlWhole)
    If Recherche Is Nothing Then
Worksheets("Stock").Range("G3:G45").Copy
ActiveSheet.Paste Destination:=Worksheets("SauvegardeVente").Range(Recherche.Row & "3", Recherche.Row & "45")
 
    End If
End Sub

('suis vraiment pas bon en programmation... c'est désespérant...)
Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
je pige pas a quoi sert Recherche.
sem n'est pas une date, mais un numérique (Long)

Private Sub CommandButton2_Click()
Dim sem As Long
sem = DatePart("WW", Date, , vbFirstJan1)
Worksheets("Stock").Range("G3:G45").Copy Worksheets("SauvegardeVente").Cells(3, sem)
End Sub
Messages postés
180
Date d'inscription
vendredi 18 janvier 2008
Statut
Membre
Dernière intervention
22 novembre 2013

euh... c'est beaucou plus simple ta méthode...!

je pensais qu'il fallais faire une recherche dans la ligne B1 à BB53 (les cellules sont numérotées de 1 à 53) pour etre certain de coller dans la colonne qui a le bon numéro de semaine.

Avec ton code, étant donné qu'on attribue la valeur 'sem' à la colonne (cells(3,sem)) j'ai un décallage d'une colonne... (la semaine 13 s'affiche dans ma colonne '12', puisque le code commence à compter a partir de la colonne A et moi a partir de la B

j'ai donc rajouté la ligne en rouge, est-ce la bonne façon de procéder?

Private Sub CommandButton2_Click()
Dim sem As Long
    sem = DatePart("WW", Date, , vbFirstJan1) 
   sem = sem + 1
    Worksheets("Stock").Range("G3:G45").Copy Worksheets("SauvegardeVente").Cells(3, sem)
End Sub
Messages postés
180
Date d'inscription
vendredi 18 janvier 2008
Statut
Membre
Dernière intervention
22 novembre 2013

Merci beaucoup pour les conseils!