Copier/coller en fonction de la semaine

Résolu
cs_Fabian123 Messages postés 180 Date d'inscription vendredi 18 janvier 2008 Statut Membre Dernière intervention 22 novembre 2013 - 26 mars 2008 à 12:07
cs_Fabian123 Messages postés 180 Date d'inscription vendredi 18 janvier 2008 Statut Membre Dernière intervention 22 novembre 2013 - 27 mars 2008 à 14:43
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

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
27 mars 2008 à 11:22
Row("1")

ne rime a rien, sorry
3
cs_Fabian123 Messages postés 180 Date d'inscription vendredi 18 janvier 2008 Statut Membre Dernière intervention 22 novembre 2013
27 mars 2008 à 13:31
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
3
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
27 mars 2008 à 14:30
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)
3
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
26 mars 2008 à 12:42
DatePart "WW" te donnera le numéro de la semaine en cours
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
26 mars 2008 à 15:15
...

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+
0
cs_Fabian123 Messages postés 180 Date d'inscription vendredi 18 janvier 2008 Statut Membre Dernière intervention 22 novembre 2013
27 mars 2008 à 09:57
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...)
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
27 mars 2008 à 13:59
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
0
cs_Fabian123 Messages postés 180 Date d'inscription vendredi 18 janvier 2008 Statut Membre Dernière intervention 22 novembre 2013
27 mars 2008 à 14:21
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
0
cs_Fabian123 Messages postés 180 Date d'inscription vendredi 18 janvier 2008 Statut Membre Dernière intervention 22 novembre 2013
27 mars 2008 à 14:43
Merci beaucoup pour les conseils!
0
Rejoignez-nous