Problème lors de la création d'un bilan [Résolu]

Signaler
Messages postés
166
Date d'inscription
dimanche 22 janvier 2012
Statut
Membre
Dernière intervention
30 juillet 2015
-
Messages postés
30310
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 novembre 2020
-
Bonjour a tous,

Lors de la création d'un rapport via un autre classeur (rapHebdo) pour ceux qui connaisse ;) , j'ai vue un léger problème, j'explique :

Je fais un rapport avec raphebdo, une fois fais je clique sur "faire le bilan", il me le fais, jusque là, pas de soucis...
Parcontre, après avoir sauvegardé et fermé le bilan, puis fermer "raphebdo", je relance "RapHebdo" puis refais un rapport, je créé a nouveau le bilan et là... il m'écrase le bilan précédent...
Voici le code :
Sub bilan(control As IRibbonControl)

'Ici je déclare mes variables
Dim wk1 As Workbook
Dim wk2 As Workbook
Dim sh As Worksheet
Dim Nom_Feuille As String
Dim total As String
Dim hzc As String
Dim trpen As String
Dim nuit As String
Dim rep As String
Dim ClasseurPath As String
Dim sem As String
Dim section As String
Dim l As Integer

rep = Environ("USERPROFILE") & ""
ClasseurPath = rep & "\Documents\POINTAGES\bilanHebdo.xlsm"


Set wk1 = ThisWorkbook
l = 2
'ouverture du classeur
Set wk2 = Workbooks.Open(ClasseurPath)
For Each sh In wk1.Worksheets
If sh.Name <> "MATRICE" And sh.Name <> "VIERGE" Then
'ton code
Nom_Feuille = sh.Name
'Copie des noms des feuilles dans une colonne
wk2.Sheets(1).Cells(l, 1).Value = Nom_Feuille
'Copie de la semaine dans une colonne
sem = sh.Range("AZ8").Value
wk2.Sheets(1).Cells(l, 2).Value = sem
'Copie de la section dans une colonne
section = sh.Range("Z11").Value
wk2.Sheets(1).Cells(l, 3).Value = section
'copie des nombres totales d'heure de chantiers
total = sh.Range("CW18").Value
wk2.Sheets(1).Cells(l, 4).Value = total
'copie des nombres totales d'heures en ZC
hzc = sh.Range("CW21").Value
wk2.Sheets(1).Cells(l, 5).Value = hzc
'copie des nombres totales de travaux pénibles
trpen = sh.Range("CW23").Value
wk2.Sheets(1).Cells(l, 6).Value = trpen
'copie des nombres totales d'heure de nuits
nuit = sh.Range("CW25").Value
wk2.Sheets(1).Cells(l, 7).Value = nuit
l = l + 1
Else

'sh.Visible = xlSheetHidden ' ou xlSheetVeryHidden
End If
Next

'Fermeture du second classeur
'wk2.Close

End Sub

si vous auriez une solution... je suis preneur ;)

Mon souhait est que le fichier au final devient une base de donnée excel..., donc tout doit s'ajouter au bilan... au fur et a mesure...

Merci à tous et bonne soirée

christian

--

1 réponse

Messages postés
30310
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 novembre 2020
338
Hello,

si vous auriez une solution... je suis preneur ;)
Oui oui.. j'ai ... :-)

Je suppose que tu veux coller les données à la suite ( et pas dans une nouvelle feuille) ?
Il te faut donc.... avant de "coller" les données.... recherchée la DERNIERE LIGNE de ton classeur cible... et au lieu de faire commencer l à 2
l = 2

Il faut commencer à DERNIERE_LIGNE + 1

' ///  l = 2
'ouverture du classeur
Set wk2 = Workbooks.Open(ClasseurPath)
wk2.sheets(1).activate
Derniere_Ligne = Cells.Find("*", Range("A1"), , , xlByRows, xlPrevious).Row
 l  = Derniere_Ligne + 1




Avant de poser une question, merci de lire la charte du site.
Cordialement, Jordane
Messages postés
166
Date d'inscription
dimanche 22 janvier 2012
Statut
Membre
Dernière intervention
30 juillet 2015
2
Salut et merci Jordane45, ça fonctionne parfaitement, j'ai déclarer Derniere_Ligne comme ça :
Dim Dernier_Feuille As Long

C'est bon ?
bonne soirée à toi

Christian
Messages postés
30310
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 novembre 2020
338
C'est bon ?
Oui très bien.
Messages postés
30310
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 novembre 2020
338
et n'oublie pas ...

Si la question est résolue..
Merci de ne pas oublier de clôturer le sujet
(en cliquant sur le lien "Marquer comme résolu" qui se trouve sous le titre de la question)

:-)

Bonne soirée.

Cordialement,
Jordane