RECOPIE CELLULES SUR UNE AUTRE FEUILLE

Hugues

XLDnaute Impliqué
Bonjour le Forum,

J'ai un souci. je souhaiterais recopier certaines cellules d'une feuille pour les recopier sur une autre feuille, à la suite de la dernière recopie, par le biais d'un bouton.
Ci joint le fichier, avec les explicatifs.
Vous remerciant par avance,
[file name=planning_20050830093755.zip size=34908]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/planning_20050830093755.zip[/file]
 

Pièces jointes

  • planning_20050830093755.zip
    34.1 KB · Affichages: 45

bbmarcus

XLDnaute Occasionnel
Bonjour Hugues, le forum,

voici qui devrais t'aider...ce lien m'a déjà servi dans un cas similaire au tiens....à toi de le mettre en application dans ton fichier (désolé, suis un peu faignasse aujourd'hui....)

Lien supprimé

@+

bbmarcus
 

Hervé

XLDnaute Barbatruc
BOnjour hugues, bbmarcus, le forum


Une synthaxe possible en pièce jointe :

Sub Bouton10_QuandClic()
Dim c As Range
Dim i As Byte
Dim derligne As Integer

For Each c In Range('c10:c' & Range('c65536').End(xlUp).Row)
   
If c <> '' And c.Offset(0, 1) <> '' Then
&nbsp; &nbsp; &nbsp; &nbsp;
With Sheets('recapitulatif')
&nbsp; &nbsp; &nbsp; &nbsp; derligne = .Range('a65536').End(xlUp).Row + 1
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
For i = 0 To 4
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .Cells(derligne, i + 1) = c.Offset(0, i)
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
Next i
&nbsp; &nbsp; &nbsp; &nbsp;
End With
&nbsp; &nbsp;
End If
Next c
End Sub

salut
[file name=planning_20050830120503.zip size=39532]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/planning_20050830120503.zip[/file]
 

Pièces jointes

  • planning_20050830120503.zip
    38.6 KB · Affichages: 56

Hugues

XLDnaute Impliqué
Rebonjour André,

Je crois que tu vas me dire que j'abuse.
J'aurais à nouveau besoin de ton aide.
Sur la base de ton précédent travail je souhaiterais ajouter 2 boîtes de message :
En cliquant sur ce bouton je souhaiterais 2 stades intermédiaires :
1er stade : poser la question si le transfert doit s'effectuer
si oui passer au 2eme stade
si non fin de l'éxecution pas de transfert (je ne suis pas arrivé à le faire)
2eme stade : dire à l'utilisateur que la semaine N° (faire référence à la cellule E5) sera transférée dans la feuille récapitulatif
De plus, je souhaiterais à ce moment dire à l'utilisateur que la derniére semaine présente dans le récapitulatif est la semaine N° (faire référence à la dernière ligne de la feuille récapitulatif)
si oui transfert à faire
si non fin de l'éxecution pas de transfert

Peux - tu m'aider ?

Je te remercie par avance [file name=planning_20050830152848.zip size=41432]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/planning_20050830152848.zip[/file]
 

Pièces jointes

  • planning_20050830152848.zip
    40.5 KB · Affichages: 36

Hervé

XLDnaute Barbatruc
rebonjour hugues, bbmarcus

hugues, quand je verrai andré, je lui passerai ton bonjour B)

pour ton souci de msgbox essaye comme ceci :

Sub Bouton10_QuandClic()
Dim c As Range
Dim ws As Worksheet

Set ws = Sheets('planning')

If MsgBox('Voulez-vous transférer le planning de la semaine ?', vbYesNo, 'Attention...') = vbNo Then
&nbsp; &nbsp;
Exit Sub
End If
&nbsp;
MsgBox 'Transfert de la semaine ' & ws.Range('e5')


For Each c In ws.Range('c10:c' & ws.Range('c65536').End(xlUp).Row)
&nbsp; &nbsp;
If c <> '' And c.Offset(0, 1) <> '' Then
&nbsp; &nbsp; &nbsp; &nbsp;
With Sheets('recapitulatif')
&nbsp; &nbsp; &nbsp; &nbsp; derligne = .Range('a65536').End(xlUp).Row + 1
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
For i = 0 To 4
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .Cells(derligne, i + 1) = c.Offset(0, i)
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
Next i
&nbsp; &nbsp; &nbsp; &nbsp;
End With
&nbsp; &nbsp;
End If
Next c
End Sub


salut pierrot
:)
 
B

br44

Guest
Bonsoir le forum ,Hugues,bbmarcuset Hervé,

je me permet d'intervenir sur ce fil parsque j'ai poser une question similaire sur le forum mais je n'ai pas eu de réponses .

Hervé si tu as un peut de temps pourrais-tu me dire si t'as procédure est applicable pour copiers deux tableaux situés sur deux feuilles différantes vers une troisieme qui serais une feuil'archives'.
de plus et-il possible d'ajouter un saut de page entrent les deux tableaux pour faciliter la mise en page .

je joint mon fichier pour que se soit plus claire

en attendant une réponse , je m'excuse d'avoire perturber se fil mais j'ai beau tourner mon problème dans tous les sens je n'envoie pas le bout .

à bientôt sur le forum br44

[file name=exvba_20050830172504.zip size=19831]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/exvba_20050830172504.zip[/file]
 

Pièces jointes

  • exvba_20050830172504.zip
    19.4 KB · Affichages: 30

Hugues

XLDnaute Impliqué
Rebonjour Hervé,

Merci pour tout ce superbe travail.
J'ai encore une petite question :
Je souhaiterais lors de la 2eme msgbox un rappel de la dernière date dans la feuille 'récapitulatif' Exemple : Transfert de la semaine xx ; le dernier jour importé dans le récapitulatif est le XX

Comment peux - t - on faire ? Il me semble qu'il faudrait extraire sur la derniére ligne du récapitulatif la date.

Merci par avance,

Hugues [file name=planning_20050830190052.zip size=41230]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/planning_20050830190052.zip[/file]
 

Pièces jointes

  • planning_20050830190052.zip
    40.3 KB · Affichages: 45

Hervé

XLDnaute Barbatruc
bonsoir tout le monde

Hugues, tu peux tester cette adaptation, on est obligé de passé par une boucle car tu as des formules en colonne c :

Pourquoi as-tu ajouté vbyesno à la deuxième msgbox celle-ci n'est que purement informative et n'attend pas de réponse autre que ok de l'utilisateur.

Sub Bouton10_QuandClic()
Dim c As Range
Dim ws As Worksheet
Dim i As Integer

Set ws = Sheets('planning')

If MsgBox('Voulez-vous transférer le planning de la semaine ?', vbYesNo, 'Attention...') = vbNo Then
&nbsp; &nbsp;
Exit Sub
End If

For i = ws.Range('c65536').End(xlUp).Row To 10 Step -1
&nbsp; &nbsp;
If Cells(i, 3) <> '' Then
&nbsp; &nbsp; &nbsp; &nbsp;
Exit For
&nbsp; &nbsp;
End If
Next i

MsgBox 'Transfert de la semaine ' & ws.Range('e5') & ' dernier jour importé :&nbsp; ' & ws.Range('c' & i), , 'Attention...'

&nbsp;
' reste du code inchangé

bsr, je regarde ton fichier.

salut
 

Hervé

XLDnaute Barbatruc
rebonsoir tout le monde, c'est encore moi :)

bsr, je me suis arrété au premier problème noté dans ton fichier :

COMMENT PUIS-JE FAIRE UNE COPIE INCREMENTÉE DE LA FEUILLE'DISTRIBUTION' PUIS DE LA FEUILLE 'RETOUR' VERS LA FEUILLE 'ARCHIVE.XLS' ?

dans la feuille archive tu as les mêmes tableaux que dans les feuilles distribution et retour , que veux tu donc copié, et qu'entends-tu par 'incrémentée' ?

Si tu veux simplement reportée dans la feuille archive les données des feuilles retour et distribution, il te suffit d'utiliser une formule du type =feuil1!A1.

Je suppose que quelque chose m'échappe, mais quoi ???

Pourrais-tu être plus précis

salut
 
B

br44

Guest
bonsoir le forum,bonsoir Hervé

t'as question ne me suprend pas , j'ai fais ces deux tableaux pour exemple et pour le poids du fichier

mais dans la réalitée :
le tableau 'distribution ' est baser 29lignes
le tableau 'retour' est baser sur 54 lignes qui se remplissent automatiquemt par le tableau 1
la feuille 'archives xls' est égal àun classeur de douzes feuilles (1/mois)
et enfin la feuille produit est elle égale à une base d'environ 200 références différentes
d'ou la formules :
1 ref = ((1tableau'distribution' + 1tableau 'retour')=1fiche archivé )le tout*par 200ref /mois .

je veux pouvoir commender le tout de l'userfrom par la commande boutton 2 de maniére à ne faire q'une seul opération .

En espérant que mon explication t'as éclairé, d'autre part je te remerci d'avance pour l'interet que tu porte à mon problème .

Te souhaite bonne réception et dis à plus sur le forum br44

P.S si tu veux que l'on passe sur un autres fil dis le mois je ne voudrais pas trop embeter Huge que je remerci avec mon problème ,fais une sugestion svp merci . Br44
 

Hervé

XLDnaute Barbatruc
Bonjour hugues, br44, le forum

de rien hugues :)

BR, j'ai beau retourner ton fichier dans tout les sens, je bataille à comprendre ce que tu veux faire, merci de bien vouloir répondre à ces quelques questions :

L'userform sert-il à remplir la feuille Retour ou la feuille distribution, ou les deux ?

lorsque l'userform est rempli ou doivent se placer les données ? suivant quelle critère ? (la journée ?)

Tu as plusieurs références produit, ne devrais-tu pas avoir plusieurs tableau récapitulatif, 1 par produit ?

Lorsque la journée est rempli, j'ai compris qu'il devait y avoir un archivage dans un classeur archive.xls (1 feuille par mois), mais doit-on cumuler les données, en somme peut'il y avoir plusieurs saisies par jour, pour le meme produit ?

En attendant de te lire, :)

salut
 
B

br44

Guest
bonjour le forum ,bonjour Hervé

Hervé en réponse à tes questions

réponse 1 : L'userfrom sert à remplir la feuille 'retour'(model qui apparait à l'ècran) format xlm

réponse 2 :Chaques séries (les 6 champs de l'userfrom)corespondent à 1 journée .

réponse 3 : partons de l'hypothèse suivante

PRODUIT= Client
RETOUR= Détail Facture
DISTRIBUTION=Facture

Chaque client à 1 fiche détail facture et 1 fiche facture
Je remplis la fiche détail facture par l'userfrom.
Il peut exister plusieurs fiches différentes dans la semaine ,mais pas forcément la totalité pour chaque client de la fiche .
une fois la fiche remplit partiellement ou totalement je click sur la commandbutton2 qui me permet de copier la fiche détail facture et la fiche facture qui se remplit automatiquement (part liaison avec la fiche détail facture) vers le classeur arhives xls positionner verticalement l'une en-dessous de l'autres .Il faut donc prévoir une fonction recherche par client dans le classeur archive de manière à pouvoir complèter une fiche créer afin d'éviter plusieurs copies des même fiches .
 

br44

XLDnaute Impliqué
bonsoir le forum ,bonsoir Hervé

j'ai trouvé une solution pour copier ma feuille dans mon classeur 'archives .xls' je te comunique ma procédure à titre d'infos et de bases pour la suite le temps pour mois de formuler clairement mes questions je te souhaite bonne récption et te dit à plus sur le forum .

procédure :

Private Sub CommandButton2_Click()
Dim CHEMIN As String
Dim Wd As Workbook

CHEMIN= 'C:\\ mon chemin'
Set Wb = Workbooks.open(Chemin&'Archives.xls')
Workbooks('classeur contenant la feuille à sauvegarder.xls).Sheets('retour').Cells.copy
Wb.Sheets('JANVIER').Paste
End sub
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 493
Messages
2 088 957
Membres
103 990
dernier inscrit
lamiadebz