VBA - Aide au pointage
Bonjour,
Je viens vers vous pour m'aider sur la programmation de la partie VBA que je souhaite mettre en place. En vert les parties qui fonctionnent. En rouge, celle qui ne fonctionnent pas ou que je n'ai pas réussi à mettre en place. J'ai commencé des bouts de code dans le Module 1 de mon fichier.
Ci-joint mon fichier.
Le but : Créer un nouveau fichier CSV pour l'export des pointages, générer le nouveau fichier pour les pointages de la semaine à venir, déplacer le fichier actuel vers un dossier archive.
Le VBA que je souhaite mettre en place doit me permettre depuis mon fichier Excel source (qui est au format .xlsm), via l'utilisation d'un bouton (que j'ai mis en place et qui lance correctement le code), de réaliser les tâches suivantes dans cet ordre :
- Créer un fichier CSV séparateur par virgule qui portera le même nom que mon fichier Excel, dans un dossier bien particulier dont le chemin sera renseigné dans le VBA
- Dans ce CSV, y écrire les lignes de la partie : Génération des lignes en fonction de ce qu'il y a dans le tableau (L'écriture des lignes dans mon fichier Excel source fonctionne)
- Enregistrer et Fermer le fichier CSV
- Créer un fichier Excel .xlsm dans le même dossier que mon fichier Excel Source, je n'ai pas encore en tête le nom que je dois donner à ce nouveau fichier
- Copier l'intégralité du fichier Excel source sur ce nouveau Excel .xlsm (Contenu des cellules, Format des cellules, VBA existant, Bouton existant ...). Peut-être puis je faire un enregistrer-sous je ne sais pas s'il ne va pas devenir actif si je fais ça ?...
- Modifier les cellules F3:J3 sur ce nouveau Excel .xlsm (Le code pour ces modifications que j'ai dans le module fonctionne)
- Supprimer les données de la plage B4:J23 sur ce nouveau Excel .xlsm
- Enregistre et Fermer ce nouveau Excel .xlsm
- Déplacer le fichier xlsm actuel dans un dossier archive.
Merci d'avance pour votre aide.
Sub Exportpointages()
Dim Chemin As String
Dim NomClasseur As String
Dim NumLigne As Integer
Dim TableClasseurSource
Dim TableClasseurNouveau
Dim ClasseurSource As Workbook
Dim ClasseurNouveau As Workbook
'Génération des lignes en fonction de ce qu'il y a dans le tableau CA MARCHE
NumLigne = 2
Cells(1, 26) = "N° de pointage,CODE ONAYA (from Personnel),Date,Temps pointé (Graphique),Affaire"
For i = 4 To 24
For j = 6 To 10
If Cells(i, j).Value <> "" Then
Cells(i, j) = Replace(Cells(i, j), ",", ".")
Cells(NumLigne, 26) = NumLigne - 1 & "," & "VIALELLES" & "," & Cells(3, j) & "," & Cells(i, j) & "," & Cells(i, 3)
NumLigne = NumLigne + 1
End If
Next
Next
'Changement de la date CA MARCHE
Cells(3, 19) = Cells(3, 6) + 7
Cells(3, 20) = Cells(3, 7) + 7
Cells(3, 21) = Cells(3, 8) + 7
Cells(3, 22) = Cells(3, 9) + 7
Cells(3, 23) = Cells(3, 10) + 7
'Copie colle la table de ce classeur vers le nouveau classeur CA MARCHE PRESQUE, JUSTE UN TRUC QUI DECONNE
'Workbooks.Add.SaveAs Filename:="Test"
'Chemin = "C:\Users\jeff.vialelles\Downloads\"
'NomClasseur = "Test.xlsx"
'Workbooks.Open Chemin & NomClasseur
'Set ClasseurSource = ThisWorkbook
'Set ClasseurNouveau = Workbooks(NomClasseur)
'ClasseurSource.Activate
'Set TableClasseurSource = ClasseurSource.Sheets("Feuil1")
'Set TableClasseurNouveau = ClasseurNouveau.Sheets("Feuil1")
'Workbooks("S10 - Pointage VIALELLES.xlsm").Worksheets("Feuil1").Range("Z1:Z1000").Copy
'Workbooks("Test.xlsx").Worksheets("Feuil1").Range("A1:A1000").PasteSpecial
'Workbooks("Test.xlsx").Close True
'Dim Fichier As String
'
'Fichier = "C:\Users\jeff.vialelles\Downloads\NomClasseurSource-Copie.xls"
'ThisWorkbook.SaveAs Fichier
End Sub