Mise a jour de feuilles Excel

Bonjour,

J'espère que la question n'a jamais été pose, mais le titre n'est pas toujours parlant.

Voila mon problème. je crée des feuilles ou onglet concernant des réquisitions de matériel, une fois que cette feuille est crée (j'ai fais une forme type), je voudrai qu'en cliquant sur un bouton (ou autre) ça mette a jour un autre fichier (ou feuille) qui serait un récapitulatif des toutes les requests faites.

En travaillant sur un seul fichier donc avec plusieurs onglets, j'utilise le premier comme feuille de récapitulatif (RECAP), et les autres comme MRF (Material Request Form), ou je galère c'est sur le fait que je n'arrive pas a recopier les datas des MRF dans des lignes successives sur l'onglet RECAP, elles se collent toujours sur la première ligne de la feuille recap, et donc effacent les précédentes, le summum serait que j'arrive a créer cela dans un fichier indépendant et non dans le même fichier.

J'espère que je me suis bien fait comprendre.

Cordialement

Pierre

Bonjour,

D'après ce que tu dis, tu as déja fait une macro et elle ne fonctionne pas comme tu

voudrais.

Envoie une copie de fichier allégé en xls, qu'on y jette un œil.

Mets des annotations de ce que tu souhaite.

Amicalement

Claude.

Bonjour Claude,

merci de t'intéresser a mon cas, voila comment je copie et met en forme ma feuille, par contre je n'incrémente pas mon compteur de ligne, donc a chaque fois ca se copie dans la première ligne et donc efface la précédente....

Dim nb As Integer
Dim item As Double

Sub naira()

    Range("I11:L26").Select
    Selection.NumberFormat = "[$NGN] #,##0.00"
    Range("G11").Select

End Sub

Sub Dollars()

    Range("I11:L26").Select
    Selection.NumberFormat = "$#,##0.00"
    Range("G11").Select

End Sub

Sub Increase()

nb = Range("D5").Value
Range("D5").Value = nb + 1

End Sub

Sub decrease()

nb = Range("d5").Value
Range("D5").Value = nb - 1

End Sub

Sub transfert()

' ######### Transfert des donnees #########

Sheets("Service RF").Activate
Sheets("Service RF").Range("D5").Copy
Sheets("Recap").Activate
ActiveSheet.Paste destination:=Sheets("Recap").Range("b2")

Sheets("Service RF").Range("D7").Copy
Sheets("Recap").Activate
ActiveSheet.Paste destination:=Sheets("Recap").Range("c2")

Sheets("Service RF").Range("D8").Copy
Sheets("Recap").Activate
ActiveSheet.Paste destination:=Sheets("Recap").Range("d2")

Sheets("Service RF").Range("F5").Copy
Sheets("Recap").Activate
ActiveSheet.Paste destination:=Sheets("Recap").Range("e2")

Sheets("Service RF").Range("F7").Copy
Sheets("Recap").Activate
ActiveSheet.Paste destination:=Sheets("Recap").Range("f2")

Sheets("Service RF").Range("F8").Copy
Sheets("Recap").Activate
ActiveSheet.Paste destination:=Sheets("Recap").Range("g2")

Sheets("Service RF").Range("L5").Copy
Sheets("Recap").Activate
ActiveSheet.Paste destination:=Sheets("Recap").Range("h2")

Sheets("Service RF").Range("B11").Copy
Sheets("Recap").Activate
ActiveSheet.Paste destination:=Sheets("Recap").Range("i2")

Sheets("Service RF").Range("L27").Copy
Sheets("Recap").Activate
ActiveSheet.Paste destination:=Sheets("Recap").Range("j2")

' Formatage des cellules

Cells.Select
    With Selection.Font
        .Name = "Arial"
        .Size = 10
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .Underline = xlUnderlineStyleNone
    End With
    Range("A2:J2").Select
    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    With Selection.Borders(xlEdgeLeft)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlEdgeTop)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlEdgeBottom)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlEdgeRight)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlInsideVertical)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    Cells.Select
    Selection.Font.ColorIndex = 1
    Range("B4").Select

Sheets("Service RF").Activate

End Sub

bon j'ai recopie toute les macro, même celle qui change les currency, et l'incrementation du numéro de SRF

Cordialement

Pierre

Bonsoir à tous,

en mettant une variable LG (dernière ligne de la feuille Recap)

Sub Transfert()
Dim Lg As Long
' ######### Transfert des donnees #########
    Sheets("Recap").Activate
        Lg = Cells.Find("*", , , , xlByRows, xlPrevious).Row + 1
    Sheets("Service RF").Activate
        Range("D5").Copy Destination:=Range("Recap!b" & Lg)
        Range("D7").Copy Destination:=Range("Recap!c" & Lg)
        Range("D8").Copy Destination:=Range("Recap!d" & Lg)
        Application.CutCopyMode = False
        Range("f5").Copy Destination:=Range("Recap!e" & Lg)
        Range("f7").Copy Destination:=Range("Recap!f" & Lg)
        Range("f8").Copy Destination:=Range("Recap!g" & Lg)
        Application.CutCopyMode = False
        Range("L5").Copy Destination:=Range("Recap!h" & Lg)
        Range("b11").Copy Destination:=Range("Recap!i" & Lg)
        Range("L27").Copy Destination:=Range("Recap!j" & Lg)
        Application.CutCopyMode = False
    Sheets("Recap").Activate
    ' Formatage des cellules
    ' suite macro
End Sub

Amicalement

Claude.

Je te remercie Claude, ça marche parfaitement, et c'est exactement ça que je voulais, je vais maintenant essayer de faire le transfert, non pas dans un onglet du worksheets, mais dans un fichier différent, qui se trouverait dans un autre folder, qui serait accessible en consultation a tout le monde.

Si tu penses que ce n'est pas possible de faire le transfert dans un autre fichier, dis le moi, sinon je vais chercher un peu, et je reviendrai donner le résulta, je pense qu'il suffit de donner le chemin et le non du fichier et un fonction load, puis auosave et exit, non ?.

Cordialement.

Pierre

Re bonjour,

En fin de compte, oui, ca marche mais pas parfaitement, je viens de me rendre compte, que la dernière cellule copie, n'était pas bonne, c.a.d., lors du premier transfert tout est bon, puis lors des suivants, la cellule copie n'est pas la bonne .....et cela uniquement pour la dernière cellule ????

Cordialement

Pierre

Bonjour,

il faut le fichier pour juger ! (en xls)

Claude.

Re bonjour Claude,

En fin de compte mon pbs est bien plus complexe...

En effet, sur ma forme j'ai créé des boutons, dont un qui fait une copie de la feuille pour en créer une nouvelle, donc les macros associes sont copies, celles qui ne font que changer des valeurs dans la feuille en cours fonctionnent toujours, mais la macro qui fait le transfert a chaque fois va chercher les valeur dans la première feuille créé...et non dans la feuille active, si tu vois ce que je veux dire ?.

Pour mon fichier en xls, est ce que je peux te l'envoyer a ton Email ?.

Cordialement

Pierre

Bonjour à tous,

en ajoutant une variable Sh (feuille active)

Sub Transfert()
Dim Lg As Long
Dim Sh
' ######### Transfert des donnees #########
Sh = ActiveSheet.Name
    Sheets("Recap").Activate
        Lg = Cells.Find("*", , , , xlByRows, xlPrevious).Row + 1
    Sheets(Sh).Activate
        Range("D5").Copy Destination:=Range("Recap!b" & Lg)
        Range("D7").Copy Destination:=Range("Recap!c" & Lg)
        Range("D8").Copy Destination:=Range("Recap!d" & Lg)
        Application.CutCopyMode = False
        Range("f5").Copy Destination:=Range("Recap!e" & Lg)
        Range("f7").Copy Destination:=Range("Recap!f" & Lg)
        Range("f8").Copy Destination:=Range("Recap!g" & Lg)
        Application.CutCopyMode = False
        Range("L5").Copy Destination:=Range("Recap!h" & Lg)
        Range("b11").Copy Destination:=Range("Recap!i" & Lg)
        Range("L27").Copy Destination:=Range("Recap!j" & Lg)
        Application.CutCopyMode = False
    Sheets("Recap").Activate
    ' Formatage des cellules
    ' suite macro
End Sub

Bonne journée

Claude.

Oui en ajoutant cette fonction cela devrait marcher, mais quand tu créés une nouvelle feuille, celle ci change de nom en sheet(2), donc dans "ActiveSheet.Name" le name change a chaque nouvelle feuille...

Est ce qu'il ne faudrait pas passer par une boite de dial ?

Pierre

Non même avec la bonne syntaxe (que tu avais donné, et que j'avais mal recopié ) ca marche pas

Pierre

re,

non, la macro démarre de la feuille active,

à toi de mettre le bouton sur la feuille.

Désolé, mais je n'ai pas le temps de prolonger ce fil, (Projet en cours)

Amicalement

Claude.

Bon j'avais répondu trop vite effectivement ca marche quand je met les bonnes valeurs ....

j;ai toujours mon pbs de copie de dernière cellule, mais déjà a avance.

Merci

Pierre

Re bonjour,

Bon je sais d'où vient le pbs de la dernière cellule non recopie proprement, la dernière cellule est une formule la somme d'une colonne..., donc je pense qu'il recopie la formule et non la valeur, ce qui fait que dans la feuille recap il copie une formule qui ne correspond a rien dans la feuille active...., il faudrait qu'il copie la valeur de la cellule et non la formule....

Voila.

Cordialement

Pierre

re,

Remplace la macro Transfert par celle-ci,

Si tu formate ta feuille "Récap", tu n'as plus besoin du reste de ta macro initiale.

Sub Transfert()
Dim Lg As Long
' ######### Transfert des donnees #########
'par Claude Dubois le 19/04/09
    With Sheets("Recap")
         Lg = .Cells.Find("*", , , , xlByRows, xlPrevious).Row + 1
        .Range("b" & Lg) = Range("D5")
        .Range("c" & Lg) = Range("D7")
        .Range("d" & Lg) = Range("D8")
        .Range("e" & Lg) = Range("f5")
        .Range("f" & Lg) = Range("f7")
        .Range("g" & Lg) = Range("f8")
        .Range("h" & Lg) = Range("L5")
        .Range("i" & Lg) = Range("b11")
        .Range("j" & Lg) = Range("L27")
    End With
    ' Formatage des cellules inutile
End Sub

n'oublie pas le petit "résolu"

Vt781resolu

Amicalement

Claude.

iiimage avie

Bon, et bien c'était ça, merci beaucoup pour ton aide.

Amicalement

Pierre.

Rechercher des sujets similaires à "mise jour feuilles"