{Résolu}Faire defiler du texte dans un label gràce à un scrollbar

{Résolu}Faire defiler du texte dans un label gràce à un scrollbar - VB/VBA/VBS - Programmation

Marsh Posté le 31-07-2006 à 16:59:51    

:pt1cable:  Salut à tous, oui c'est encore moi ces temps ci j'ai vraiment du mal à me sortir de mes problèmes. Je n'ai rien trouvé de bon sur le net. Je fais donc encore appel à vous, s'il vous plaît, pour un autre problème.
 
Alors mon problème est simple :
 J'aimerai afficher une ligne toute entière dans un label dans un userform. Mais la ligne (composée de plusieurs valeures de plusieurs colonnes sur une même ligne) est trop longue, donc j'aimerai pouvoir la consulter entièrement gràce à une scrollbar.
Pouvez-vous m'aider, s'il vous plaît?


Message édité par zephyron1 le 01-08-2006 à 16:20:46
Reply

Marsh Posté le 31-07-2006 à 16:59:51   

Reply

Marsh Posté le 31-07-2006 à 17:22:31    

bonjour,
A mon avis une toupie serait plus appropriée.
Utilise Mid
si x est la valeur de la toupie
a la longueur de la chaine à afficher
TonEtiquette.caption=Mid(TonString, 1+ x*a,a)
Prévoir une gestion d'erreur pour la sortie quand x*a > Len(TonString)
A+


Message édité par galopin01 le 31-07-2006 à 17:22:57
Reply

Marsh Posté le 01-08-2006 à 13:18:38    

Merci Galopin01 mais ça ne fonctionne pas correctement.
Tout d'abord je n'ai pas compris ta formule : 1+x*a, avec un clic je ne voyais plus rien donc j'ai laissé simplement la valeur de mon spinbutton et ça marche : x
Ca me donne bien : BCDE au lieu de ABCD
 
Ensuite j'ai tenté autre chose, j'ai essayé de faire afficher dans plusieurs labels des valeurs dans ma feuille excel.
 
voici le code quand je clique sur le spinbutton:

Citation :

Private Sub SpinButton1_Change()
  SpinButton1.Min = 0
  SpinButton1.Max = Module1.spinValueMax
  Module1.spinValue = SpinButton1.Value
  UserForm2.Label1.Caption = Module1.columnTitle(spinValue)
  UserForm2.Label4.Caption = Module1.columnValue(spinValue)
  Module1.spinValue = SpinButton1.Value + 1
  UserForm2.Label2.Caption = Module1.columnTitle(spinValue)
  UserForm2.Label5.Caption = Module1.columnValue(spinValue)
  Module1.spinValue = SpinButton1.Value + 2
  UserForm2.Label3.Caption = Module1.columnTitle(spinValue)
  UserForm2.Label6.Caption = Module1.columnValue(spinValue)
  Module1.spinValue = SpinButton1.Value
End Sub


 
Pour mes labels, j'utilise deux fonctions à qui j'envois la valeur du spinbutton : columnTitle et columnValue. Voici une des fonctions (l'autre est la même sauf qu'elle me donne la ligne en cours au lieu de me donner le titre de la colonne :  
 

Citation :

Function columnTitle(spinValue As Integer) As String
 columnTitle = CStr(Workbooks(fileName2).Sheets(sheetName).Cells(1, spinValue).Value)
End Function


filename2 et sheetName sont en privé
 
Arrivé à la ligne en rouge, paf une application-defined/object-defined erreur. D'où ça peut bien venir?

Reply

Marsh Posté le 01-08-2006 à 15:48:20    

:fou:  Je ne m'en sors pas! Je cherche depuis 13h et je ne trouve rien!
 
Si j'écris ça : columnTitle = Workbooks(fileName2).Sheets(sheetName).Cells(1, 1)
ça marche mais si je mets ça : columnTitle = Workbooks(fileName2).Sheets(sheetName).Cells(1, spinValue) rien à faire.
 
 :bounce: Please help!

Reply

Marsh Posté le 01-08-2006 à 15:54:13    

zephyron1 a écrit :

:fou:  Je ne m'en sors pas! Je cherche depuis 13h et je ne trouve rien!
 
Si j'écris ça : columnTitle = Workbooks(fileName2).Sheets(sheetName).Cells(1, 1)
ça marche mais si je mets ça : columnTitle = Workbooks(fileName2).Sheets(sheetName).Cells(1, spinValue) rien à faire.
 
 :bounce: Please help!


peut etre qu'a la place de spinvalue tu mets module1.spinvalue ou je ne sais quelle structure avant le .spinvalue ?

Reply

Marsh Posté le 01-08-2006 à 16:19:39    

:pt1cable:  
Non j'ai plus simple : Function columnTitle(spinValue spinValue2 As Integer) As String
 
Voilà il a fallu que j'essais ça que maintenant... Tant pis ça m'apprendra à ne pas differencier les noms des parametres avec les noms des variables...
Merci jpcheck, merci Galopin, @la prochaine.  :hello:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed