transfert données suivant 1 critère avec VBA

Le
tatanka
Bonjour,

J'ai un petit problème sur un de mes fichiers dont voici un exemple :
http://cjoint.com/?dDmDh1Uzxi

Dans ce fichier, je rentre des données manuellement et via un bouton cré
sous excel je fais un cumul de ces données.

Ce que j'aimerai, c'est qu'en utilisant ce même bouton, que mes données
aillent se sauvegarder dans un autre tableau.

Le critère de sauvegarde serait la semaine (S11,S12,etc dans le fichier joint)

Quelqu'un connaît il une macro que je pourrais utiliser pour mon fichier?

merci

cdt
Tatanka
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Jacky
Le #21460391
Bonjour,

Tel que présenté je dirais...
en I5
=SI(ET($C5<>0;$C$4=I$4);$C5;"")

Recopier vers le bas et gauche et droite
Voir ici
http://www.cijoint.fr/cjlink.php?file=cj201003/cijdCIuygO.xls

--
Salutations
JJ


"tatanka"
Bonjour,

J'ai un petit problème sur un de mes fichiers dont voici un exemple :
http://cjoint.com/?dDmDh1Uzxi

Dans ce fichier, je rentre des données manuellement et via un bouton cré
sous excel je fais un cumul de ces données.

Ce que j'aimerai, c'est qu'en utilisant ce même bouton, que mes données
aillent se sauvegarder dans un autre tableau.

Le critère de sauvegarde serait la semaine (S11,S12,etc dans le fichier joint)

Quelqu'un connaît il une macro que je pourrais utiliser pour mon fichier?

merci

cdt
Tatanka
FFO
Le #21460381
Salut à toi

Ce code devrait faire :

Colonne = Range("G4", Cells(4,
Range("IV4").End(xlToLeft).Column).Address).Find(What:=Range("C4"),
After:=Range("G4"), LookIn:=xlValues, LookAt:=xlWhole).Column
i = 5
Do While Range("C" & i) <> ""
If Range("C" & i) <> 0 Then
Cells(65535, Colonne).End(xlUp).Offset(1, 0) = Range("C" & i)
End If
i = i + 1
Loop


sur ce lien ton fichier :

http://www.cijoint.fr/cjlink.php?file=cj201003/cijR7Pvot1.xls

Aprés l'avoir récupéré et ouvert cliques sur le bouton "Traitement"

Donnes moi des nouvelles !!!!!
michdenis
Le #21460421
Bonjour,

'-------------------------------------
Sub test1()
Dim C As Range, a As Long
Application.EnableEvents = False
Application.ScreenUpdating = False
With Worksheets("Feuil1")
For Each C In .Range("C5:C" & .Range("C65536").End(xlUp).Row)
a = a + 1
If C.Value <> 0 Then
.Range("i5")(a, 1) = C.Value
End If
Next
End With
Application.EnableEvents = True
Application.ScreenUpdating = True

End Sub
'-------------------------------------

"tatanka" discussion :
Bonjour,

J'ai un petit problème sur un de mes fichiers dont voici un exemple :
http://cjoint.com/?dDmDh1Uzxi

Dans ce fichier, je rentre des données manuellement et via un bouton cré
sous excel je fais un cumul de ces données.

Ce que j'aimerai, c'est qu'en utilisant ce même bouton, que mes données
aillent se sauvegarder dans un autre tableau.

Le critère de sauvegarde serait la semaine (S11,S12,etc dans le fichier joint)

Quelqu'un connaît il une macro que je pourrais utiliser pour mon fichier?

merci

cdt
Tatanka
tatanka
Le #21460641
Merci à vous trois pour vos réponses rapide

FFO, ca marche nikel sauf que (et oui sinon ce n'est pas drôle) ca ne me
reporte pas les données quand j'ai une cellule vide ou égal à 0

"FFO" a écrit :

Salut à toi

Ce code devrait faire :

Colonne = Range("G4", Cells(4,
Range("IV4").End(xlToLeft).Column).Address).Find(What:=Range("C4"),
After:=Range("G4"), LookIn:=xlValues, LookAt:=xlWhole).Column
i = 5
Do While Range("C" & i) <> ""
If Range("C" & i) <> 0 Then
Cells(65535, Colonne).End(xlUp).Offset(1, 0) = Range("C" & i)
End If
i = i + 1
Loop


sur ce lien ton fichier :

http://www.cijoint.fr/cjlink.php?file=cj201003/cijR7Pvot1.xls

Aprés l'avoir récupéré et ouvert cliques sur le bouton "Traitement"

Donnes moi des nouvelles !!!!!

FFO
Le #21460771
Rebonjour à toi

Effectivement c'était ton cahier des charges dans le document fourni

L'aurais je mal interprété ????

Que falait il comprendre ????

Merci de préciser
tatanka
Le #21460761
Bon comme je galère de trop (et oui je suis une bille sur VBA...)
Je vous met ci joint un epartie de mon fichier :
http://www.cijoint.fr/cjlink.php?file=cj201003/cijIVB4x9n.xls

Alors les données sont renseignées dans les colonnes C et E.

Quand je viens cliquer sur "cumul semaine" les données sont additionnées
dans les colonnes H et J.

Et quand je viens cliquer sur cumul annuel, les données sont additionnées en
M et 0.

C'est à travers ce bouton "cumul annuel" que j'aimerai que le transfert se
fasse en tenant compte de la donnée en M5.

Le tableau historique commence à partir de la colonne T.

Si l'un d'entre vous arrive à me résourdre mon pb, ca serait vraiment
parfait!!!

ENcore merci à tout ceux qui prennnent du temps à aider les non expert en VBA

"tatanka" a écrit :

Merci à vous trois pour vos réponses rapide

FFO, ca marche nikel sauf que (et oui sinon ce n'est pas drôle) ca ne me
reporte pas les données quand j'ai une cellule vide ou égal à 0

"FFO" a écrit :

> Salut à toi
>
> Ce code devrait faire :
>
> Colonne = Range("G4", Cells(4,
> Range("IV4").End(xlToLeft).Column).Address).Find(What:=Range("C4"),
> After:=Range("G4"), LookIn:=xlValues, LookAt:=xlWhole).Column
> i = 5
> Do While Range("C" & i) <> ""
> If Range("C" & i) <> 0 Then
> Cells(65535, Colonne).End(xlUp).Offset(1, 0) = Range("C" & i)
> End If
> i = i + 1
> Loop
>
>
> sur ce lien ton fichier :
>
> http://www.cijoint.fr/cjlink.php?file=cj201003/cijR7Pvot1.xls
>
> Aprés l'avoir récupéré et ouvert cliques sur le bouton "Traitement"
>
> Donnes moi des nouvelles !!!!!
>
Daniel.C
Le #21461001
Bonjour.
Essaie :

Private Sub CommandButton2_Click()
Dim c As Range, Col As Integer
Application.ScreenUpdating = False
Col = Application.Match([M5], [A8:BH8], 0)
For Each c In Range([B9], [B65000].End(xlUp))
c.Offset(, 11) = c.Offset(, 11) + c.Offset(, 6)
c.Offset(, 6) = ""
Next c
For Each c In Range([B9], [B65000].End(xlUp))
c.Offset(, 13) = c.Offset(, 13) + c.Offset(, 8)
Cells(c.Row, Col) = c.Offset(, 8)
c.Offset(, 8) = ""
Next c
Application.ScreenUpdating = True
End Sub

Cordialement.
Daniel

Bon comme je galère de trop (et oui je suis une bille sur VBA...)
Je vous met ci joint un epartie de mon fichier :
http://www.cijoint.fr/cjlink.php?file=cj201003/cijIVB4x9n.xls

Alors les données sont renseignées dans les colonnes C et E.

Quand je viens cliquer sur "cumul semaine" les données sont additionnées
dans les colonnes H et J.

Et quand je viens cliquer sur cumul annuel, les données sont additionnées en
M et 0.

C'est à travers ce bouton "cumul annuel" que j'aimerai que le transfert se
fasse en tenant compte de la donnée en M5.

Le tableau historique commence à partir de la colonne T.

Si l'un d'entre vous arrive à me résourdre mon pb, ca serait vraiment
parfait!!!

ENcore merci à tout ceux qui prennnent du temps à aider les non expert en VBA

"tatanka" a écrit :

Merci à vous trois pour vos réponses rapide

FFO, ca marche nikel sauf que (et oui sinon ce n'est pas drôle) ca ne me
reporte pas les données quand j'ai une cellule vide ou égal à 0

"FFO" a écrit :

Salut à toi

Ce code devrait faire :

Colonne = Range("G4", Cells(4,
Range("IV4").End(xlToLeft).Column).Address).Find(What:=Range("C4"),
After:=Range("G4"), LookIn:=xlValues, LookAt:=xlWhole).Column
i = 5
Do While Range("C" & i) <> ""
If Range("C" & i) <> 0 Then
Cells(65535, Colonne).End(xlUp).Offset(1, 0) = Range("C" & i)
End If
i = i + 1
Loop


sur ce lien ton fichier :

http://www.cijoint.fr/cjlink.php?file=cj201003/cijR7Pvot1.xls

Aprés l'avoir récupéré et ouvert cliques sur le bouton "Traitement"

Donnes moi des nouvelles !!!!!

FFO
Le #21461321
Rebonjour à toi

Je ne vois quelle donnée (colonne H/I/J/K/L) du CUMUL SEMAINE je dois ramener
dans le tableau historique

Merci de préciser la colonne
tatanka
Le #21461681
Merci Daniel

Ca fonctionne parfaitement

Et merci à FFO qui a passé beaucoup de temps sur mon pb

"Daniel.C" a écrit :

Bonjour.
Essaie :

Private Sub CommandButton2_Click()
Dim c As Range, Col As Integer
Application.ScreenUpdating = False
Col = Application.Match([M5], [A8:BH8], 0)
For Each c In Range([B9], [B65000].End(xlUp))
c.Offset(, 11) = c.Offset(, 11) + c.Offset(, 6)
c.Offset(, 6) = ""
Next c
For Each c In Range([B9], [B65000].End(xlUp))
c.Offset(, 13) = c.Offset(, 13) + c.Offset(, 8)
Cells(c.Row, Col) = c.Offset(, 8)
c.Offset(, 8) = ""
Next c
Application.ScreenUpdating = True
End Sub

Cordialement.
Daniel

> Bon comme je galère de trop (et oui je suis une bille sur VBA...)
> Je vous met ci joint un epartie de mon fichier :
> http://www.cijoint.fr/cjlink.php?file=cj201003/cijIVB4x9n.xls
>
> Alors les données sont renseignées dans les colonnes C et E.
>
> Quand je viens cliquer sur "cumul semaine" les données sont additionnées
> dans les colonnes H et J.
>
> Et quand je viens cliquer sur cumul annuel, les données sont additionnées en
> M et 0.
>
> C'est à travers ce bouton "cumul annuel" que j'aimerai que le transfert se
> fasse en tenant compte de la donnée en M5.
>
> Le tableau historique commence à partir de la colonne T.
>
> Si l'un d'entre vous arrive à me résourdre mon pb, ca serait vraiment
> parfait!!!
>
> ENcore merci à tout ceux qui prennnent du temps à aider les non expert en VBA
>
> "tatanka" a écrit :
>
>> Merci à vous trois pour vos réponses rapide
>>
>> FFO, ca marche nikel sauf que (et oui sinon ce n'est pas drôle) ca ne me
>> reporte pas les données quand j'ai une cellule vide ou égal à 0
>>
>> "FFO" a écrit :
>>
>>> Salut à toi
>>>
>>> Ce code devrait faire :
>>>
>>> Colonne = Range("G4", Cells(4,
>>> Range("IV4").End(xlToLeft).Column).Address).Find(What:=Range("C4"),
>>> After:=Range("G4"), LookIn:=xlValues, LookAt:=xlWhole).Column
>>> i = 5
>>> Do While Range("C" & i) <> ""
>>> If Range("C" & i) <> 0 Then
>>> Cells(65535, Colonne).End(xlUp).Offset(1, 0) = Range("C" & i)
>>> End If
>>> i = i + 1
>>> Loop
>>>
>>>
>>> sur ce lien ton fichier :
>>>
>>> http://www.cijoint.fr/cjlink.php?file=cj201003/cijR7Pvot1.xls
>>>
>>> Aprés l'avoir récupéré et ouvert cliques sur le bouton "Traitement"
>>>
>>> Donnes moi des nouvelles !!!!!
>>>


.

tatanka
Le #21465071
Bon une dernière et après j'arrête^^

Donc pour un tableau pas de problème ca marche...

Par contre j'ai un deuxième tableau à renseigner via cette manip.

Voici ce que j'ai écrit (en dupliquant la méthode à Daniel):
Private Sub CommandButton2_Click()
Dim c As Range, Col As Integer
Application.ScreenUpdating = False
Col = Application.Match([M5], [A8:BH8], 0)
For Each c In Range([B9], [B65000].End(xlUp))
c.Offset(, 11) = c.Offset(, 11) + c.Offset(, 6)
Cells(c.Row, Col) = c.Offset(, 6)
c.Offset(, 6) = ""
Application.ScreenUpdating = True
Next c
Application.ScreenUpdating = False
Col2 = Application.Match([M5], [A62:BH62], 0)
For Each c In Range([B9], [B65000].End(xlUp))
c.Offset(, 13) = c.Offset(, 13) + c.Offset(, 8)
Cells(c.Row, Col2) = c.Offset(, 8)
c.Offset(, 8) = ""
Next c
Application.ScreenUpdating = True
End Sub

Sauf que la deuxième partie ne fonctionne pas, je n'ai pas de données qui
arrive dans mon deuxième tableau.

Si quelqu'un peut m'aider je suis prenneur



"tatanka" a écrit :

Merci Daniel

Ca fonctionne parfaitement

Et merci à FFO qui a passé beaucoup de temps sur mon pb

"Daniel.C" a écrit :

> Bonjour.
> Essaie :
>
> Private Sub CommandButton2_Click()
> Dim c As Range, Col As Integer
> Application.ScreenUpdating = False
> Col = Application.Match([M5], [A8:BH8], 0)
> For Each c In Range([B9], [B65000].End(xlUp))
> c.Offset(, 11) = c.Offset(, 11) + c.Offset(, 6)
> c.Offset(, 6) = ""
> Next c
> For Each c In Range([B9], [B65000].End(xlUp))
> c.Offset(, 13) = c.Offset(, 13) + c.Offset(, 8)
> Cells(c.Row, Col) = c.Offset(, 8)
> c.Offset(, 8) = ""
> Next c
> Application.ScreenUpdating = True
> End Sub
>
> Cordialement.
> Daniel
>
> > Bon comme je galère de trop (et oui je suis une bille sur VBA...)
> > Je vous met ci joint un epartie de mon fichier :
> > http://www.cijoint.fr/cjlink.php?file=cj201003/cijIVB4x9n.xls
> >
> > Alors les données sont renseignées dans les colonnes C et E.
> >
> > Quand je viens cliquer sur "cumul semaine" les données sont additionnées
> > dans les colonnes H et J.
> >
> > Et quand je viens cliquer sur cumul annuel, les données sont additionnées en
> > M et 0.
> >
> > C'est à travers ce bouton "cumul annuel" que j'aimerai que le transfert se
> > fasse en tenant compte de la donnée en M5.
> >
> > Le tableau historique commence à partir de la colonne T.
> >
> > Si l'un d'entre vous arrive à me résourdre mon pb, ca serait vraiment
> > parfait!!!
> >
> > ENcore merci à tout ceux qui prennnent du temps à aider les non expert en VBA
> >
> > "tatanka" a écrit :
> >
> >> Merci à vous trois pour vos réponses rapide
> >>
> >> FFO, ca marche nikel sauf que (et oui sinon ce n'est pas drôle) ca ne me
> >> reporte pas les données quand j'ai une cellule vide ou égal à 0
> >>
> >> "FFO" a écrit :
> >>
> >>> Salut à toi
> >>>
> >>> Ce code devrait faire :
> >>>
> >>> Colonne = Range("G4", Cells(4,
> >>> Range("IV4").End(xlToLeft).Column).Address).Find(What:=Range("C4"),
> >>> After:=Range("G4"), LookIn:=xlValues, LookAt:=xlWhole).Column
> >>> i = 5
> >>> Do While Range("C" & i) <> ""
> >>> If Range("C" & i) <> 0 Then
> >>> Cells(65535, Colonne).End(xlUp).Offset(1, 0) = Range("C" & i)
> >>> End If
> >>> i = i + 1
> >>> Loop
> >>>
> >>>
> >>> sur ce lien ton fichier :
> >>>
> >>> http://www.cijoint.fr/cjlink.php?file=cj201003/cijR7Pvot1.xls
> >>>
> >>> Aprés l'avoir récupéré et ouvert cliques sur le bouton "Traitement"
> >>>
> >>> Donnes moi des nouvelles !!!!!
> >>>
>
>
> .
>
Publicité
Poster une réponse
Anonyme