Divers macro (création/modifcation/..)

Bonjour a tous,

Cela fait maintenant plusieurs années que j'élabore mon fichier de saisie d'heure, après moult modification, je me décide enfin à me mettre aux macro. Mais le problème c'est que je suis un vrai niouby !!! ducoup je vous explique ce que je souhaite faire et là ou je bloque :

  • Depuis la Feuil1 je saisi mes heures par semaine via une interface qui s'implémente les une derrière les autres.
  • j'ai réussis via macro à envoyer mes données vers une feuil1 vers la feuille 'S1'.
  • Est t il possible à partir de mon interface de saisie lors de la validation, de créer une feuille nommée en fonction du numéro de la semaine (ex : "Sxx" xx étant le numéro de la semaine) et d'inclure les données saisie dans cette interface sur le tableau de feuille 'Matrice'.
  • Pouvoir depuis l'interface sélectionner une feuille pour la modifier et avoir les données qui remonte dedant pour pouvoir les modifier.
  • Le dernier bouton avec la fonction égale ne se transfert pas dans la feuille S1. Après je ne sais pas si j'ai appliqué les bonnes méthodes, mais j'ai fais avec ce que j'ai trouvé.

Il y a peut être un autre moyen que de passer par la Feuil1 pour re-transferer mes saisie.

Merci de votre aide.

Aurélien

bonjour

envoi un fichier en zip ou xlsm car je n'ouvre pas les 7z

Pascal

Bonjour Pascal,

Voici le fichier Zippé!!

Bonjour

déja dans le module 4 enlève tous les select et le code fonctionnera mieux

dans le même style que celui ci que j'ai fait

Sub copyegaleF1versS1()
'
' copyegaleF1versS1 Macro
'

'
    Sheets("Feuil1").SmallScroll ToRight:=5
    With Sheets("S1")
        .Range("E7").FormulaR1C1 = "=Feuil1!R[-5]C[15]"
        .Range("E8").FormulaR1C1 = "=Feuil1!R[-6]C[16]"
        .Range("E9").FormulaR1C1 = "=Feuil1!R[-7]C[19]"
        .Range("E10").FormulaR1C1 = "=Feuil1!R[-8]C[20]"
        .Range("E11").FormulaR1C1 = "=Feuil1!R[-9]C[21]"
        .Range("E14").FormulaR1C1 = "=Feuil1!R[-12]C[22]"
        .Range("E15").FormulaR1C1 = "=Feuil1!R[-13]C[23]"
        .Range("E16").FormulaR1C1 = "=Feuil1!R[-14]C[24]"
        .Range("E18").FormulaR1C1 = "=Feuil1!R[-16]C[25]"
        .Range("E19").FormulaR1C1 = "=Feuil1!R[-17]C[26]"
        .Range("E20").FormulaR1C1 = "=Feuil1!R[-18]C[27]"
        .Range("E21").Select
    End With
End Sub

mes compétences m'oblige a laisser un pro prendre la relève

Pascal

bonjour

je viens de faire une cure sur un code de ton module 4 et l'on vois plus clairement qui fait quoi et

.Range("A1").

a du boulot

Sub copybyegalFeuil1versS1()
'
' copybyegalFeuil1versS1 Macro
'

    With Sheets("Feuil1")
        .Offset(2, 5).Range("A1").FormulaR1C1 = "=Feuil1!R2C1"
        .Offset(4, -2).Range("A1").FormulaR1C1 = "=Feuil1!R2C3"
        .Offset(1, 0).Range("A1").FormulaR1C1 = "=Feuil1!R2C4"
        .Offset(1, 0).Range("A1").FormulaR1C1 = "=Feuil1!R2C7"
        .Offset(1, 0).Range("A1").FormulaR1C1 = "=Feuil1!R2C8"
        .Offset(1, 0).Range("A1").FormulaR1C1 = "=Feuil1!R2C9"
        .Offset(3, 0).Range("A1").FormulaR1C1 = "=Feuil1!R2C10"
        .Offset(1, 0).Range("A1").FormulaR1C1 = "=Feuil1!R2C11"
        .Offset(1, 0).Range("A1").FormulaR1C1 = "=Feuil1!R2C11"
        ActiveCell.FormulaR1C1 = "=Feuil1!R2C12"
        .Offset(2, 0).Range("A1").FormulaR1C1 = "=Feuil1!R2C13"
        .Offset(1, 0).Range("A1").FormulaR1C1 = "=Feuil1!R2C14"
        .Offset(1, 0).Range("A1").FormulaR1C1 = "=Feuil1!R2C15"
        .Offset(-13, 1).Range("A1").FormulaR1C1 = "=Feuil1!R2C20"
        .Offset(1, 0).Range("A1").FormulaR1C1 = "=Feuil1!R2C21"
        .Offset(1, 0).Range("A1").FormulaR1C1 = "=Feuil1!R2C24"
        .Offset(1, 0).Range("A1").FormulaR1C1 = "=Feuil1!R2C25"
        .Offset(1, 0).Range("A1").FormulaR1C1 = "=Feuil1!R2C26"
        .Offset(3, 0).Range("A1").FormulaR1C1 = "=Feuil1!R2C27"
        .Offset(1, 0).Range("A1").FormulaR1C1 = "=Feuil1!R2C28"
        .Offset(1, 0).Range("A1").FormulaR1C1 = "=Feuil1!R2C29"
        .Offset(2, 0).Range("A1").FormulaR1C1 = "=Feuil1!R2C30"
        .Offset(1, 0).Range("A1").FormulaR1C1 = "=Feuil1!R2C31"
        .Offset(1, 0).Range("A1").FormulaR1C1 = "=Feuil1!R2C32"
        .Offset(-13, 1).Range("A1").FormulaR1C1 = "=Feuil1!R2C37"
        .Offset(1, 0).Range("A1").FormulaR1C1 = "=Feuil1!R2C38"
        .Offset(1, 0).Range("A1").FormulaR1C1 = "=Feuil1!R2C41"
        .Offset(1, 0).Range("A1").FormulaR1C1 = "=Feuil1!R2C42"
        .Offset(1, 0).Range("A1").FormulaR1C1 = "=Feuil1!R2C43"
        .Offset(3, 0).Range("A1").FormulaR1C1 = "=Feuil1!R2C44"
        .Offset(1, 0).Range("A1").FormulaR1C1 = "=Feuil1!R2C45"
        .Offset(1, 0).Range("A1").FormulaR1C1 = "=Feuil1!R2C46"
        .Offset(2, 0).Range("A1").FormulaR1C1 = "=Feuil1!R2C47"
        .Offset(1, 0).Range("A1").FormulaR1C1 = "=Feuil1!R2C48"
        .Offset(1, 0).Range("A1").FormulaR1C1 = "=Feuil1!R2C49"
        .Offset(-13, 1).Range("A1").FormulaR1C1 = "=Feuil1!R2C54"
        .Offset(1, 0).Range("A1").FormulaR1C1 = "=Feuil1!R2C55"
        .Offset(1, 0).Range("A1").FormulaR1C1 = "=Feuil1!R2C58"
        .Offset(1, 0).Range("A1").FormulaR1C1 = "=Feuil1!R2C59"
        .Offset(1, 0).Range("A1").FormulaR1C1 = "=Feuil1!R2C60"
        .Offset(3, 0).Range("A1").FormulaR1C1 = "=Feuil1!R2C61"
        .Offset(1, 0).Range("A1").FormulaR1C1 = "=Feuil1!R2C62"
        .Offset(1, 0).Range("A1").FormulaR1C1 = "=Feuil1!R2C63"
        .Offset(2, 0).Range("A1").FormulaR1C1 = "=Feuil1!R2C64"
        .Offset(1, 0).Range("A1").FormulaR1C1 = "=Feuil1!R2C65"
        .Offset(1, 0).Range("A1").FormulaR1C1 = "=Feuil1!R2C66"
        .Offset(-13, 1).Range("A1").FormulaR1C1 = "=Feuil1!R2C71"
        .Offset(1, 0).Range("A1").FormulaR1C1 = "=Feuil1!R2C72"
        .Offset(1, 0).Range("A1").ormulaR1C1 = "=Feuil1!R2C75"
        .Offset(1, 0).Range("A1").FormulaR1C1 = "=Feuil1!R2C76"
        .Offset(1, 0).Range("A1").FormulaR1C1 = "=Feuil1!R2C77"
        .Offset(3, 0).Range("A1").FormulaR1C1 = "=Feuil1!R2C78"
        .Offset(1, 0).Range("A1").FormulaR1C1 = "=Feuil1!R2C79"
        .Offset(1, 0).Range("A1").FormulaR1C1 = "=Feuil1!R2C80"
        .Offset(2, 0).Range("A1").FormulaR1C1 = "=Feuil1!R2C81"
        .Offset(1, 0).Range("A1").FormulaR1C1 = "=Feuil1!R2C82"
        .Offset(1, 0).Range("A1").FormulaR1C1 = "=Feuil1!R2C83"
        'ActiveCell.Offset(1, 0).Range("A1").Select
    End With
End Sub

voila pour ma part, mais je suis sur qu'il y a mieux

Pascal

Merci Pascal pour tes réponses. Je vais essayer ce que tu m'a envoyé.

Si quelqu'un peu aider sur les autres problèmes je suis preneur.

Merci de vos retour.

bonjour diabolik14

explique un peu comment tu pense faire fonctionner ton fichier

de ton interface tu envoi les données en "feuil1" mais qu'en fait tu après pour les envoyer par exemple dans la matrice

une fois que tu a rempli ta feuil1 via l'interface et ce toute la semaine, tu serai assez tôt pour transférer en "S1" et vider la feuil1 afin de repartir sur une base saine la semaine suivante

je soumet des idées mais je ne sais pas si a mon niveau j'arriverai a le faire

toujours dans ton module 4 dans la

Sub CopieDataFeuil1versS1()

tu peux enlever tous les select de cette manière

Worksheets("feuil1").Range("C2").Copy
ActiveSheet.Paste Destination:=Worksheets("S1").Range("D7")

au lieu de

Worksheets("Feuil1").Select
    Range("C2").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("S1").Select
    Range("D7").Select
    ActiveSheet.Paste

cela permettra de l'éclaircir

Pascal

Enfaite mon idée de base était que je puisse saisir depuis mon interface ma semaine et que celà créer une nouvelle feuille et que les données soit introduite dans mon tableau. Mais comme je n'ai pas trouvé la solution, j'ai ducoup faire avec ce que j'ai trouvé sur le net, c'est à dire saisir les données dans la page 1 et ensuite les transférer dans une nouvelle feuille et le introduire dans mon tableau.

Donc mon idée si elle est réalisable serait donc :

  • saisir dans l'interface mes heures de la semaine, en fonction du numéro de la semaine saisie que celà puisse me créer une nouvelle feuille appelé en fonction de ce numéro avec un S devant, et que les données soit rempli dans mon tableau récap.
  • depuis l'interface appeler un numéro de semaine déjà saisie et pouvoir le modifier.

Après je me complique peut être un peu la vie.

A vous de me dire.

Merci

bonsoir diabolik14

voila ce que je viens de faire, dans ce code du bouton "valider" de ton interface j'ai rajouté un appel a une sub qui sera en dessous

Private Sub CommandButton1_Click() 'valider

    Dim Ctrl As Control
    Dim r As Integer
    Dim t As Integer
    Dim derligne As Integer

    With Worksheets("Feuil1")
        derligne = .Range("A65536").End(xlUp).Row + 1
        For Each Ctrl In UserForm1.Controls
            r = Val(Ctrl.Tag)
            If r > 0 Then Feuil1.Cells(derligne, r) = Ctrl
        Next Ctrl
        Feuil1.Cells(derligne, 1) = Val(TextBox1)
    End With

Call ajoutfeuillenommée '( voila l'appel)

    TextBox1 = ""
    Unload Me
End Sub

et voici la sub

Sub ajoutfeuillenommée()

Dim Feuille As Worksheet

For Each Feuille In ThisWorkbook.Worksheets

Next
Sheets.Add after:=Sheets("Matrice")
ActiveSheet.Name = "Sem N°" & UserForm1.TextBox1.Value ' Day(Date) & "-" & Month(Date) & "-" & Year(Date)
With UserForm1
    Sheets("Matrice").Range("D7") = .ComboBox1.Value
End With
End Sub

je pense que tu dois pouvoir écrire les données de ton interface comme ce que j'ai mis après la dernière ligne du code ci dessus

a ce niveau je te laisse bosser

et voici un apercu de ce que ca donne

et tu rajoute

 ligne = Sheets("Feuil1").Range("A65536").End(xlUp).Row
TextBox1 = Sheets("Feuil1").Range("A" & ligne).Value + 1

dans l'initialsation de l'usf"interface"pour que le textbox 1 prenne la valeur du dernier n°de semaine sur la feuille "Feuil1" +1

et en prime je t'envoi ton fichier modifié avec ce que je t'ai dit pus haut

si cela te vas dit moi

pascal

Merci beaucoup pour ton aide, je regarde ton fichier et te dis tous ca.

Un grand MERCI pour ton boulot !!!

Parcontre comment je peux faire pour insérer dans la feuille que tu crée(SEM n°xx) le tableau de la feuille matrice.

Merci de ton retour.

Diabolik

bonjour diabolik14 et le forum

pour envoyer la matrice dans la feuille nommée sem N° ??? , je crois qu'il vaux mieux remplir ta matrice d'abord, si tu dois la finir en fin de semaine par exemple, et donc par ce fait valider la semaine après

donc dans ta matrice il faudra que remplisse la semaine du temps au temps manuellement

et une fois que ta matrice te semblera remplie, je n'ai rien trouvé de mieux que créer la feuille a ce moment la par le biais d'un bouton supplémentaire que j'ai nommé "finaliser la semaine" et je te joint ton fichier pour que tu vois

pascal

Merci Pascal,

Je vais continuer tous seul maintenant comme un grand !!!

Merci pour cette ses réponses qui m'ont été d'une grande aide !!!

Diabolik

bonjour diabolik14

Pascal

Rechercher des sujets similaires à "divers macro creation modifcation"