Variable sur TextBox

Startus

XLDnaute Occasionnel
Bonsoir à tous ...

Par soucis de raccoucir mes code j'aimerai modifier une chose dans code, mais jusqu'ici sans succès:

Code:
Private Sub UserForm_Initialize()
' Initialise la boite
TextBox1 = Format(ActiveCell.Offset(0, 0), 'dd/mm')
TextBox2 = ActiveCell.Offset(0, 1)
TextBox3 = ActiveCell.Offset(0, 2)
TextBox4 = ActiveCell.Offset(0, 3)
TextBox5 = ActiveCell.Offset(0, 4)
End Sub

Je le modifie comme cela :

Code:
Private Sub UserForm_Initialize()
' Initialise la boite
TextBox1 = Format(ActiveCell.Offset(0, 0), 'dd/mm')
For i = 2 To 5
textbox & i =ActiveCell.Offset(0,i+1)
Next i
End Sub

Je ne sais pourquoi, je n'arrive pas a affecter une variable a une TextBox ???
 

Charly2

Nous a quittés en 2006
Repose en paix
Bonsoir Startus :)

Tu peux essayer ainsi :

Private Sub UserForm_Initialize()
'
Dim i As Byte
'
  ' Initialise les boîtes
  With ActiveCell
    For i = 1 To 5
      IIf(i > 1, Me.Controls('TextBox' & i) =.Offset(0, i + 1), _
          TextBox1 = Format(.Offset(0, 0), 'dd/mm'))
    Next i
  End With
End Sub

Tiens-nous au courant.

A+ ;)

Message édité par: Charly2, à: 16/03/2006 01:49
 

Jacques87

XLDnaute Accro
Bonjour Startus, Bonjour Charly

Une petite remarque : selon la première version de Startus, il me semble qu'il faut écrire :
Offset(0, i - 1) et non pas Offset(0 , i + 1)

Cela dit en passant est ce que cette fois ci ça marchera ... ?

Bonne journée à tous les deux
 

Charly2

Nous a quittés en 2006
Repose en paix
Bonjour Startus, mon ami Jacques, bonjour à toutes et à tous :)

Merci Jacques, je n'avais pas vu ce détail important. Espérons que cela suffise à régler le problème de Startus ;)

Au plaisir de te rencontrer au hasard d'un fil.

A+ ;)
 

Startus

XLDnaute Occasionnel
Salut tout le monde,

Avant tout, merci pour votre aide...
Effectivement, il faut bien ecrire :

Offset(0, i - 1)

Mais le soucis majeur, est que VBE ne reconnait pas la syntaxe du code que Charly à écrit, ni la mienne par ailleurs...
La ligne s'insrit en rouge ???

Merci
 

Charly2

Nous a quittés en 2006
Repose en paix
re Startus et Jacques, bonjour à toutes et à tous :)

Ouh la la !!! Quelle bourde !!! IIf est une fonction et donc retourne une valeur, comme c'est une fonction l'affectation doit être du genre :

Variable = IIf(Condition, SiVrai, SiFaux)

Il faut corriger cette ENORME erreur de programmation (j'ai honte :sick: ) :

Me.Controls('TextBox' & i) = IIf(i > 1, .Offset(0, i - 1), Format(.Offset(0, 0), 'dd/mm'))

Désolé Startus
:whistle:

A+ ;)
 

Startus

XLDnaute Occasionnel
Bonsoir tout le monde,

Réponse tardive, mais boulot oblige...

Après avoir modifié le code comme ceci :
Code:
Private Sub UserForm_Initialize()
' Initialise la boite
For i = 1 To 5
With ActiveCell
Me.Controls('TextBox' & i) = IIf(i > 1, .Offset(0, i - 1), Format(.Offset(0, 0), 'dd/mm'))
Next i
End With
End Sub

Lorsque je teste une boite s'affiche :
Erreur de Compilation Next sans For

Moi qui croyait, raccoucir le code ,c'est un vrai casse tête...
 

Charly2

Nous a quittés en 2006
Repose en paix
Bonsoir Startus, bonsoir à toutes et à tous :)

Alors là, c'est pô moi qu'ai fait l'erreur :p . Non, c'est vraiment pas grand chose : tu intervertis le Next i et le End With et tout rentrera dans l'ordre...

A+ ;)
 

Bernard_XLD

XLDnaute Barbatruc
Membre du Staff
wah, quel monde à cette heure!! ;)

allez une petite histoire pour réveiller les belges du forum (y en a!)

Ce sont deux belges à la chasse, ils voient passer un deltaplane. Le premier belge épaule et tire :
le deuxième belge- Bah tu l'as raté !!
le premier belge- Oui mais il a lâché sa proie.

une autre (en forme moi ce soir !)

Un jeune gars dit à un autre dans le train:
- Oh tiens, je vais te raconter une super histoire belge...
L'autre:
- Ah mais ça ne va pas dis, JE suis belge!
-C'est pas grave, répond le premier, je te la raconterai deux fois
 

Startus

XLDnaute Occasionnel
Merci à Tous

Après avoir inversé With ActiveCell, Tout est rentré dans l'ordre

Encore Merci

Ce fut un bon exercice pour moi que me permet de m'améliorer en programmation...

En VBA je m'initie, j'ai acheté comme référence le livre de John Walkenbach 'VBA pour Excel 2003'

Qu'en pensé-vous ?
 

Discussions similaires

Réponses
21
Affichages
1 K

Statistiques des forums

Discussions
312 779
Messages
2 092 045
Membres
105 168
dernier inscrit
makari69