Bonjour Shawinigan
C'est très bien de vouloir s'auto-former, mais apparemment tu ne connais pas les bases
VBA est un langage orienté objet et tu n'utilises pas les objets conteneurs dans ton code
Du coup on ne sait pas ou tu veux inscrire par exemple
Cells(1, 6).Value = "Sommaire pour la période " & Cells(1, 27).Value
Il faudrait mettre
Sheets("MaFeuille").Cells(1, 6).Value = "Sommaire pour la période " & Sheets("MaFeuille").Cells(1, 27).Value
Dans ton Userform10
Private Sub lstPeriode_Change()
Dim NumLigne As Integer
NumLigne = lstPeriode.ListIndex + 4
Me.TextBox1.Value = Sheets("Liste").Cells(NumLigne, 9).Value
Me.TextBox2.Value = Sheets("Liste").Cells(NumLigne, 10).Value
Sheets.Add After:=ThisWorkbook.Sheets(3)
With ActiveSheet
.Name = "Rapport P" & lstPeriode.ListIndex + 1 & "-" & Right(TextBox1.Value, 4)
.Cells(1, 27).Value = lstPeriode.ListIndex + 1
.Cells(1, 28).Value = TextBox1.Value
.Cells(1, 29).Value = TextBox2.Value
End With
' Définir la nouvelle feuille avec la variable public, pour s'en servir plus tard
Set NewSht = ActiveSheet
End Sub
Dans ton Module2, ta procédure "Sub EcrirePlantation()"
PlanBLig = Range("B" & Rows.Count).End(xlUp).Row
' Vérifier que pas dans entête, sinon atribuer la ligne
If PlanBLig <= 6 Then plablig = 7
Après c'est trop brouillon...
A+