Macro qui teste le contenu d'un tableau
Bonjour,
Etant débutante en vb, j'ai créer une fiche permettant de valider les données dans un tableau afin d'obtenir les données de plusieurs fiches différentes. ci joint la fiche.
J'ai créer des boutons liés par des macros
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123
| Sub Transfert()
Dim LigneCible As Long, ligneOrigine As Long
Dim LigneFin As Long
Dim Données As Variant
Dim Nom As String
Dim Mois As String
Dim Trimestre As String
Dim Année As String
Dim Nbjourstrav As String
Dim Nbconges As String
Dim Nbformation As String
Dim Pointeur As Long
Dim CheminBdd As String
'Lecture des infos dans la fiche de saisie
Nom = ThisWorkbook.Worksheets("fiche_activite").Range("B3").Value
Mois = ThisWorkbook.Worksheets("fiche_activite").Range("E3").Value
Trimestre = ThisWorkbook.Worksheets("fiche_activite").Range("E4").Value
Année = ThisWorkbook.Worksheets("fiche_activite").Range("E5").Value
Nbjourstrav = ThisWorkbook.Worksheets("fiche_activite").Range("D6").Value
Nbconges = ThisWorkbook.Worksheets("fiche_activite").Range("D8").Value
Nbformation = ThisWorkbook.Worksheets("fiche_activite").Range("D10").Value
LigneFin = ThisWorkbook.Worksheets("fiche_activite").Range("A2000").End(xlUp).Row
Données = ThisWorkbook.Worksheets("fiche_activite").Range("A14:e" & LigneFin)
'Ecriture dans l'onglet Base de données BDD
' Le chemin sera à modifier en fonction de l'application
CheminBdd = "u:/test/"
If Left(Dir(CheminBdd & "BDD.*"), 4) <> "BDD." Then
Workbooks.Add
Worksheets.Add
ActiveSheet.Name = "BDD"
Worksheets("BDD").Range("A1") = "Nom"
Worksheets("BDD").Range("B1") = "Mois"
Worksheets("BDD").Range("C1") = "Trimestre"
Worksheets("BDD").Range("D1") = "Année"
Worksheets("BDD").Range("E1") = "Nbjourstrav"
Worksheets("BDD").Range("F1") = "Nbconges"
Worksheets("BDD").Range("G1") = "Nbformation"
ThisWorkbook.Worksheets("fiche_activite").Range("A13:E13").Copy Destination:=Worksheets("BDD").Range("H1:L1")
ActiveWorkbook.SaveAs Filename:=CheminBdd & "BDD.xls"
Else
Workbooks.Open Filename:=CheminBdd & "BDD.xls"
End If
LigneCible = Workbooks("BDD.xls").Worksheets("BDD").Range("A65535").End(xlUp).Row + 1
' Boucle répétitive pour le nom
For Pointeur = LigneCible To LigneCible + UBound(Données) - 1
Range("BDD!A" & Pointeur) = Année
Range("BDD!B" & Pointeur) = Trimestre
Range("BDD!C" & Pointeur) = Mois
Range("BDD!D" & Pointeur) = Nom
Range("BDD!E" & Pointeur) = Nbjourstrav
Range("BDD!F" & Pointeur) = Nbconges
Range("BDD!G" & Pointeur) = Nbformation
Next Pointeur
'Copie globale de la zone saisie
Workbooks("BDD.xls").Worksheets("BDD").Range("H" & LigneCible & ":L" & LigneCible + UBound(Données) - 1) = Données
Workbooks("BDD.xls").Close True
MsgBox "Merci la fiche du mois de " & Range("D3") & " a été transférée à Véronique"
End Sub
Sub Transfert_CT()
Dim LigneCible As Long, ligneOrigine As Long
Dim LigneFin As Long
Dim Données As Variant
Dim Nom As String
Dim Mois As String
Dim Trimestre As String
Dim Année As String
Dim Nbjourstrav As String
Dim Nbconges As String
Dim Nbformation As String
Dim Pointeur As Long
Dim CheminBdd As String
'Lecture des infos dans la fiche de saisie
Nom = ThisWorkbook.Worksheets("fiche_activite").Range("B3").Value
Mois = ThisWorkbook.Worksheets("fiche_activite").Range("E3").Value
Trimestre = ThisWorkbook.Worksheets("fiche_activite").Range("E4").Value
Année = ThisWorkbook.Worksheets("fiche_activite").Range("E5").Value
Nbjourstrav = ThisWorkbook.Worksheets("fiche_activite").Range("D6").Value
Nbconges = ThisWorkbook.Worksheets("fiche_activite").Range("D8").Value
Nbformation = ThisWorkbook.Worksheets("fiche_activite").Range("D10").Value
LigneFin = ThisWorkbook.Worksheets("fiche_activite").Range("A2000").End(xlUp).Row
Données = ThisWorkbook.Worksheets("fiche_activite").Range("A14:e" & LigneFin)
'Ecriture dans l'onglet Base de données BDD
' Le chemin sera à modifier en fonction de l'application
CheminBdd = "u:/"
If Left(Dir(CheminBdd & "BDD.*"), 4) <> "BDD." Then
Workbooks.Add
Worksheets.Add
ActiveSheet.Name = "BDD"
Worksheets("BDD").Range("A1") = "Nom"
Worksheets("BDD").Range("B1") = "Mois"
Worksheets("BDD").Range("C1") = "Trimestre"
Worksheets("BDD").Range("D1") = "Année"
Worksheets("BDD").Range("E1") = "Nbjourstrav"
Worksheets("BDD").Range("F1") = "Nbconges"
Worksheets("BDD").Range("G1") = "Nbformation"
ThisWorkbook.Worksheets("fiche_activite").Range("A13:E13").Copy Destination:=Worksheets("BDD").Range("H1:L1")
ActiveWorkbook.SaveAs Filename:=CheminBdd & "BDD.xls"
Else
Workbooks.Open Filename:=CheminBdd & "BDD.xls"
End If
LigneCible = Workbooks("BDD.xls").Worksheets("BDD").Range("A65535").End(xlUp).Row + 1
' Boucle répétitive pour le nom
For Pointeur = LigneCible To LigneCible + UBound(Données) - 1
Range("BDD!A" & Pointeur) = Année
Range("BDD!B" & Pointeur) = Trimestre
Range("BDD!C" & Pointeur) = Mois
Range("BDD!D" & Pointeur) = Nom
Range("BDD!E" & Pointeur) = Nbjourstrav
Range("BDD!F" & Pointeur) = Nbconges
Range("BDD!G" & Pointeur) = Nbformation
Next Pointeur
'Copie globale de la zone saisie
Workbooks("BDD.xls").Worksheets("BDD").Range("H" & LigneCible & ":L" & LigneCible + UBound(Données) - 1) = Données
Workbooks("BDD.xls").Close True
MsgBox "Merci la fiche du mois de " & Range("D3") & " a été sur votre fichier personnel"
End Sub |
Première chose : je ne veux que ces données par mois c'est à dire que la personne saisie chaque mois ces données en tenant compte de changer le mois, comment faire pour vérifier que la personne a bien changé de mois pour valider l'envoi des données.
Deuxième chose : sachant que le champs trimestre découle du mois je souhaite savoir comment dès que la personne change de mois le changement de trimestre se fait automatiquement.
Merci pour vos solutions et explications
vivi