SetFocus fonctionne sous XL 2000 pas sous 2010
bonsoir à tous,
voilà j'ai un petit souci dans mon code VBA, j'ai une petite application qui me serre à gérer un parc de véhicules et celui fonctionne très bien sous Excel 2000, mais VBE me bloque sur une ligne sous Excel 2013 (pas toute l'application une fonction de celle-ci)
l'erreur VBE:
erreur d'exécution '2110'
le focus ne peut être déplacé sur le contrôle car celui-ci est introuvable,
non activé, ou d'un type n'acceptant pas le focus.
la ligne en question:
TextBox1.SetFocusje mes également le code qui contient cette ligne entourer
mon application à 2 fichiers Excel les USF et la base de donnée (désoler le code et un peut long)
Private Sub TabStrip1_click(ByVal Index As Long)
Dim typ As String
Select Case Index
Case 0 'recherche
Label106.Visible = False ' affichage de l'immat en cour
TextBox1.Visible = True 'boite de saisie de l'immat à rechercher
TabStrip1.Value = 0 'bascule sur le tabstrip qui vas bien
Cancel = True
TextBox1.Enabled = True
[inline]TextBox1.SetFocus 'evite le déclenchement des tb de saisie des visites lors de leur masquage[/inline]
TextBox1.SelStart = 0
TextBox1.SelLength = 10
Frame1.TabStop = False
masquage
Case 1 'potentiel
Cancel = False
If rechercheok = False Then
MsgBox "Il faut d'abord sélectionner un véhicule dans l'onglet :" & TabStrip1.Tabs(0).Caption
TabStrip1_click (0)
Else
Frame1.TabStop = True
Frame1.Enabled = True
TextBox58.Visible = True 'boite de saisie du nouveau potentiel
TextBox58.Enabled = True
TextBox58.Value = Cells(ligne, Range("POT").Column)
TextBox58.SetFocus
TextBox58.SelStart = 0
TextBox58.SelLength = 10
TextBox1.Enabled = False
TabStrip1.Enabled = False
End If
masquage
Case 2 'onglet visite
Cancel = False
If rechercheok = False Then
MsgBox "Il faut d'abord sélectionner un véhicule dans l'onglet :" & TabStrip1.Tabs(0).Caption
TabStrip1_click (0)
Else
'affichage des fenêtres de saisies pour EC
TextBox62.Visible = True
Label206.Visible = True
TextBox63.Visible = True
Label207.Visible = True
TextBox64.Visible = True
TextBox62.Value = Mid(Cells(ligne, Range("V_1").Column), 1, 2)
TextBox63.Value = Mid(Cells(ligne, Range("V_1").Column), 4, 2)
'jrg le 20/10/00 TextBox64.Value = Mid(Cells(ligne, Range("V_1").Column), 7, 2)
TextBox64.Value = Right(Cells(ligne, Range("V_1").Column), 2)
TextBox62.SetFocus
TextBox62.SelStart = 0
TextBox62.SelLength = 2
If Cells(ligne, Range("T_1").Column) = "" Then
TextBox93.Visible = True
TextBox62.Visible = False
Label206.Visible = False
TextBox63.Visible = False
Label207.Visible = False
TextBox64.Visible = False
End If
affichage_géneral
TextBox1.Enabled = False
TextBox58.Visible = False 'boite de saisie des potentiel
TextBox61.Visible = False
TextBox58.Enabled = False
TextBox61.Enabled = False
End If
Frame1.TabStop = False
Case 3 'onglet observations
If rechercheok = False Then
MsgBox "Il faut d'abord sélectionner un véhicule dans l'onglet :" & TabStrip1.Tabs(0).Caption
TabStrip1_click (0)
Else
Frame1.TabStop = True
Frame1.Enabled = True
Label295.Visible = False 'boite d'affichage des commentaires
TextBox23.Enabled = True 'boite de saisie des commentaires
TextBox23.Value = Cells(ligne, Range("commentaire").Column) 'maj du contenu
TextBox23.ControlTipText = "touche F1 pour enregistrer les commentaires"
TextBox23.SetFocus
TabStrip1.Enabled = False 'on masque les autres tabstrip
End If
Case 4 'onglet modifications
Cancel = False
'onglet modification (des paramétres d'un véhicule)
If rechercheok = False Then
MsgBox "Il faut d'abord sélectionner un véhicule dans l'onglet :" & TabStrip1.Tabs(0).Caption
TabStrip1_click (0)
Else
TabStrip1.Enabled = False
Frame1.TabStop = True
Frame1.Enabled = True
affichage_géneral
masquage
TextBox1.Enabled = False
TextBox60.Visible = True
TextBox60.SetFocus
TextBox60.Value = Cells(ligne, Range("Potentiel_1_janvier").Column)
TextBox60.SelStart = 0
TextBox60.SelLength = 10
End If
Case 5 'onglet periodicite
TextBox1.Enabled = False
Frame1.TabStop = False
'onglet creation
affichage_géneral
masquage
TextBox124.Visible = True
TextBox124.Value = Int(Cells(ligne, Range("T_1").Column))
TextBox125.Visible = True
TextBox125.Value = CByte((Cells(ligne, Range("T_1").Column) - Int(Cells(ligne, Range("T_1").Column))) * 12)
Label313.Visible = True
Label314.Visible = True
TextBox124.SetFocus
TextBox124.SelStart = 0
TextBox124.SelLength = 2
Label152.Visible = False
Case 6 'onglet traitements des indisponibles
If rechercheok = False Then
MsgBox "Il faut d'abord sélectionner un véhicule dans l'onglet :" & TabStrip1.Tabs(0).Caption
TabStrip1_click (0)
Else
TextBox1.Enabled = False
Frame1.TabStop = False
affichage_géneral
masquage
If Cells(ligne, Range("DT_IDSPO").Column) = "" Then
TabStrip1.Enabled = False
TextBox148.Locked = False
TextBox149.Locked = False
TextBox150.Locked = False
TextBox151.Locked = False
TextBox152.Locked = False
ComboBox7.Locked = False
Label333.Visible = False
TextBox148.Visible = True
TextBox149.Visible = True
TextBox150.Visible = True
TextBox148.SetFocus
TextBox148.Value = Mid(Range("TODAY"), 1, 2)
TextBox149.Value = Mid(Range("TODAY"), 4, 2)
'jrg le 20/10/00 TextBox150.Value = Mid(Range("TODAY"), 7, 2)
TextBox150.Value = Right(Range("TODAY"), 2)
TextBox148.SelStart = 0
TextBox148.SelLength = 2
Else
TabStrip1.Enabled = False
TextBox148.Locked = False
TextBox149.Locked = False
TextBox150.Locked = False
TextBox151.Locked = False
TextBox152.Locked = False
ComboBox7.Locked = False
Label333.Visible = False
TextBox148.Visible = True
TextBox149.Visible = True
TextBox150.Visible = True
TextBox148.SetFocus
TextBox148.Value = Mid(Cells(ligne, Range("DT_IDSPO").Column), 1, 2)
TextBox149.Value = Mid(Cells(ligne, Range("DT_IDSPO").Column), 4, 2)
'jrg le 20/10/00 TextBox150.Value = Mid(Cells(ligne, Range("DT_IDSPO").Column), 7, 2)
TextBox150.Value = Right(Cells(ligne, Range("DT_IDSPO").Column), 2)
TextBox148.SelStart = 0
TextBox148.SelLength = 2
TextBox148.SetFocus
End If
End If
End Select
End Suben espèrent être clair
je remercie par avance toutes les personne qui pourrons m'apporter de l'aide par avance
je suis sous Windows 7 (32bits)
Excel 2010 (32bits)
Vérifie le nom de ton textbox. Il est frequent que excel transforme les nomd des controles dans la langue d'excel..
Il s'appelle peut être "zone de texte"
merci pour ta réponse, mais non dommage....
par contre pour aiguillé pour peut-être mieux ciblé le problème je détail un peut plus
je suis sur l'USF 6 je fait mon mic mac puis je clic sur un bouton pour visualisé
code du bouton:
Private Sub CommandButton26_Click() 'boutton editer du menu edition
'filtrage
Dim compteur
compteur = 0 ' Initialise la variable.
Worksheets("ted2").Activate
Cells.Select
Selection.Delete Shift:=xlUp
Select Case potentiel_visite
Case 32
Worksheets("Archivage_Indisponibles").Activate
While Cells(compteur + 1, MAT) <> ""
compteur = compteur + 1 'comptage du nombre de ligne
Wend
compteur = compteur + 1
Rows("1:1").Select
Case 8 'si archivage des indispo
Worksheets("Archivage_Potentiels").Activate
While Cells(compteur + 1, MAT) <> ""
compteur = compteur + 1 'comptage du nombre de ligne
Wend
compteur = compteur + 1
Rows("1:1").Select
Case Else
Worksheets("ted").Activate
While Cells(compteur + 4, MAT) <> ""
compteur = compteur + 1 'comptage du nombre de ligne
Wend
compteur = compteur + 4 + 1
Rows("3:3").Select
End Select
Selection.AutoFilter
If filtre = "TOUS" Then
Selection.AutoFilter Field:=1
Else
Selection.AutoFilter Field:=champ2, Criteria1:=filtre
End If
If filtre2 = "TOUS" Then
Selection.AutoFilter Field:=champ
Else
Selection.AutoFilter Field:=champ, Criteria1:=filtre2
End If
If potentiel_visite = 4 Then Selection.AutoFilter Field:=champ3, Criteria1:="<>" 'si edition des indispo
Select Case potentiel_visite
Case 32 'si archivage des indispos
Rows("2:" & compteur).Select
Selection.Copy
Sheets("ted2").Select
Range("A1").Select
ActiveSheet.Paste
Selection.Sort Key1:=Range("C2"), Order1:=xlAscending, Key2:=Range("G2") _
, Order2:=xlAscending, Key3:=Range("BR2"), Order3:=xlDescending, Header _
:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Case 8 'si archivage des potentiels
Rows("2:" & compteur).Select
Selection.Copy
Sheets("ted2").Select
Range("A1").Select
ActiveSheet.Paste
Selection.Sort Key1:=Range("C2"), Order1:=xlAscending, Key2:=Range("G2") _
, Order2:=xlAscending, Key3:=Range("BR2"), Order3:=xlDescending, Header _
:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Case Else
Rows("3:" & compteur).Select
Selection.Copy
Sheets("ted2").Select
Range("A1").Select
ActiveSheet.Paste
'Trie
Rows("1:" & compteur).Select
Selection.Sort Key1:=Range("C1"), Order1:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _
False, Orientation:=xlTopToBottom
End Select
'remise à zero
champ = 1
filtre2 = filtre
Select Case potentiel_visite
Case 32 'si archivage des indispo
Worksheets("Archivage_Indisponibles").Activate
Case 8 'si archivage des potentiels
Worksheets("Archivage_Potentiels").Activate
Case Else
Worksheets("ted").Activate
End Select
Application.CutCopyMode = False ' desactivation du filtrage
Selection.AutoFilter
Worksheets("ted").Activate
Select Case potentiel_visite
Case 1 'edition des potentiel
UserForm3.edition_potentiels (potentiel_visite)
Case 2 'édition des visite
If visite <> 0 Then
Call UserForm3.edition_prochaine_visite(potentiel_visite, visite, nom_visite)
Else
Call UserForm3.editions_prochaines_visites(potentiel_visite, visite, nom_visite)
End If
Case 4
UserForm3.edition_potentiels (potentiel_visite)
Case 8 'si archivage des potentiels
UserForm3.edition_potentiels (potentiel_visite)
Case 16 'édition liste du mat
UserForm3.edition_list_mat (potentiel_visite)
Case 32
UserForm3.edition_potentiels (potentiel_visite)
Case Else
End Select
CommandButton27_Click 'bouton Annuler
UserForm3.MultiPage1.Pages(4).Enabled = False
UserForm3.MultiPage1.Pages(4).Enabled = True
Unload UserForm6
End Subet normalement je devrais arriver sur l'USF 3 page4 (onglet)
celle-ci devrais normalement m'afficher l'aperçu avant impression
je re signal que tout marche parfaitement bien sur Excel 2000
je pensé peut-être à une fonction Excel qui n'est plus prise en charge par XL 2010 ?
je joint mon application et son fonctionnement
pour peut-être mieux expliquer mon problème, des images valent mieux qu'un long discours
j'ai donc 2 fichiers Tdmi.xls et TDMI_V3.120.14
un double clic sur TDMI_V3.120.14 pour la lancer
1re USF cliquer sur démarrer
sur l'USF suivante cliquer sur l'onglet Visualisation
puis arriver dans Visualisation
cliquer sur " Edition des visites
puis inserré une date ex: 30/06/14
puis retard de visite
puis tous
puis tous
et encore une fois tous
puis Visualiser puis OK
sur la nouvelle fenêtre " APPUYER SUR AFFICHAGE"
APPUYER SUR AFFICHAGE
il faut appuyer sur la touche R du clavier et débogage
qui me donne erreur setfocus.................
cette onglet devrais m'afficher l'onglet visite du classeur Tdmi.xls