Bug sur Liste (Combobox)

Geraldine

XLDnaute Occasionnel
Bonjour à tous,

Je ne comprend pas pourquoi j'ai une erreur ?
Quand je click "NOUVEAU", j'ai une duplication de la feuille "POSTE 0" (Feuille Masquée)en "POSTE 1".
Suite à cette création, j'ai un bug quand je navigue de feuille en feuille à l'aide de la combobox, quand je veux a nouveau dupliquer une feuille etc ...ça remarche ... ça remarche plus etc ..
J'utilise excel 2003, j'ai essayé mon application sur excel 2007 et une erreur se produit aussi, un peu différente, et due à la copie d'une feuille masquée.
Sur 2007, la copie de la feuille "POSTE 0" se fait sur les feuilles existentes et non sur une nouvelle feuille. Si j'affiche la feuille "POSTE 0" la copie fonctionne correctement.

Les deux problèmes sont peut être liés,
Je pense à une erreur grossière, donc je vous soumet les codes utilisés.

Merci à vous, Géraldine

Ma liste :
Private Sub ComboBox1_Change()
Worksheets(CStr(Me.ComboBox1)).Activate <<<<< BUG
End Sub

Un bouton création :
Private Sub Nouveau_Click()
Dim Temp As String
Dim NumFeuille As Integer
Dim Sh As Worksheet
For Each Sh In Worksheets
If Left(Sh.Name, 5) = "POSTE" Then
If Val(Right(Sh.Name, 2)) > NumFeuille Then
NumFeuille = Val(Right(Sh.Name, 2))
End If
End If
Next
NumFeuille = NumFeuille + 1
Temp = ActiveSheet.Name
Worksheets("POSTE 0").Copy before:=Sheets("-DEVIS-")
ActiveSheet.Name = "POSTE" & Format(NumFeuille, " 0")
ActiveSheet.Visible = True
ActiveCombobox
End Sub


Dans thisWorkbook :
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim i%
'If Not ActiveSheet.Name = "-DEVIS-" Then Exit Sub J'ai voulu supprimer pour quand toutes feuilles activées et non uniquement "-DEVIS-"
With Sheets("Synthes")
.Range("A2:E65536").ClearContents
For i = 1 To Sheets.Count
If Sheets(i).Name Like "POSTE**" Then
.Cells(.Range("A65536").End(xlUp).Row + 1, 1).Value = Sheets(i).Range("c7").Value
.Cells(.Range("B65536").End(xlUp).Row + 1, 2).Value = Sheets(i).Range("c12").Value
End If
Next i
End With
With Sheets("Synthes2")
.Range("A2:E65536").ClearContents
For i = 1 To Sheets.Count
If Sheets(i).Name Like "SUPPL**" Then
.Cells(.Range("A65536").End(xlUp).Row + 1, 1).Value = Sheets(i).Range("c7").Value
.Cells(.Range("B65536").End(xlUp).Row + 1, 2).Value = Sheets(i).Range("c12").Value
End If
Next i
End With
ActiveCombobox
End Sub
 
Dernière édition:

smotty

XLDnaute Occasionnel
Re : Bug sur Liste (Combobox)

re moi (erreur de manip)

Private Sub ComboBox1_Change()
if me.combobox1.value<>"" then Worksheets(CStr(Me.ComboBox1)).Activate
End Sub

Je viens de faire un test rapide et j'avais le genre d'erreur que tu évoques.
 

Discussions similaires

Réponses
6
Affichages
235

Membres actuellement en ligne

Statistiques des forums

Discussions
312 176
Messages
2 085 967
Membres
103 069
dernier inscrit
jujulop