La 256ème ligne fatale à excel ????

  • Initiateur de la discussion moustic66
  • Date de début
M

moustic66

Guest
Bonjour à tous et à toutes !

Voilà mon probleme,

j'ai tant bien que mal réussi à creer un petit programme qui me sert dans mon travail à commander du matéreil

Cela comprend une boite de dialogue qui a :

un menu déroulant qui correspond à 'Désignation'

une case 'TYPES'

une case 'REFERENCES'

une case 'FABRIQUANT'

une case 'C.F.

une case qui correspond à la ligne que je cherche dans la feuille 'Liste'

La macro réagit comme ça

Je clique sur un bouton qui m'ouvre la boite,

je selectionne dans le menu déroulant un article et tout ce que l'article comprend comme reference 'attérit' dans les divers cases,

ensuite je clique sur OK et ça me colle le tout dans une feuille appelée 'impression'


Tout allait bien jusqu'a ce que j'arrive a la 256ème lignes,

quand je selectionne cette ligne dans mon menu déroulant,

mes cases dans la boite de dialogue ne corresponde plus à la

ligne en question!

Est-ce que la cause est que je ne peux plus aller plus loin que 256 lignes?

Merci pour votre aide !!!
 

MichelXld

XLDnaute Barbatruc
bonjour

tu peux faire un essai en remplaçant les éventuelles variables Byte par Integer, dans ta procedure


Byte :
utilisé pour stocker des nombres entiers positifs compris entre 0 et 255.
Les variables de type Byte sont stockées sous la forme de nombres uniques codés sur 8 bits (1 octet), sans signe .

Integer :
données contenant des nombres entiers stockés sous forme d'entiers de 2 octets compris entre -32 768 et 32 767.


bon apres midi
MichelXld
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonsoir Michel, Moustik, le Forum


Oui Michel j'ai pensé Idem, mais en général VBA envoit une Erreur de dépassement de capacité... Par l'explication de Moustik, on dirait que les récupérations de données deviennent aléatoires...Mais qu'il n'y pas d'erreur...

Faudrait voir le code complet...

Sinon VBA est bien capable de travailler sur 65536 lignes et 256 colonnes sans 'battre la campagne' !!!

Bonne fin de Journée
[ol]@+Thierry[/ol]
 
M

moustic66

Guest
Bonsoir à vous et grand merci pour votre aide !

Mais je dois dire que je n'ai pas tout compris de ce que vous avez dis....
La ou j'ai bloqué c'est quand MichelXld à parler de :

'tu peux faire un essai en remplaçant les éventuelles variables Byte par Integer, dans ta procedure'

Je pourais avoir votre avis pour y faire?

Merci de votre aide!
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Re BOnsoir Moutik, Salut cher ami José

Ah oui José le On Error Resume Next ;) on peut chercher longtemps avec ça !

Pour Moustik, et bien Byte est un type de Variable... Mais au regard de ta réponse c'est que tu ne dois pas vraiment utiliser des déclarations de Variable...

Michel veut dire que si tu as :
Dim MaLigne As Byte

Essaie de mettre
Dim MaLigne As Integer

Ce serait mieux de nous poster un fichier exemple alors...

Bonne Soirée
[ol]@+Thierry[/ol]
 
M

moustic66

Guest
Re tout le monde,
Lorsque je tappe ma réponse j'ai en bas la possibilité de joindre un fichier que j'ai fais au début mais ça na pas fonctionner...

Je vous joint le code au cas ou!


Private Sub ComboBox1_Change()
TextBox2.Value = Sheets('liste').Columns('a:a').Find(ComboBox1.Value).Offset(0, 1).Value
TextBox3.Value = Sheets('liste').Columns('a:a').Find(ComboBox1.Value).Offset(0, 2).Value
TextBox4.Value = Sheets('liste').Columns('a:a').Find(ComboBox1.Value).Offset(0, 3).Value
TextBox5.Value = Sheets('liste').Columns('a:a').Find(ComboBox1.Value).Offset(0, 4).Value
TextBox6.Value = Sheets('liste').Columns('a:a').Find(ComboBox1.Value).Offset(0, 5).Value
TextBox7.Value = Sheets('liste').Columns('a:a').Find(ComboBox1.Value).Offset(0, 6).Value
End Sub

Private Sub CommandButton1_Click()
Sheets('Impression').Select
Columns('a:a').Find('Designation').Offset(1, 0).EntireRow.Select
Selection.Insert Shift:=xlDown
ActiveCell.Value = ComboBox1.Value
ActiveCell.Offset(0, 1).Value = TextBox2.Value
ActiveCell.Offset(0, 2).Value = TextBox3.Value
ActiveCell.Offset(0, 3).Value = TextBox4.Value
ActiveCell.Offset(0, 4).Value = TextBox5.Value
ActiveCell.Offset(0, 5).Value = TextBox6.Value
ActiveCell.Offset(0, 6).Value = TextBox7.Value
UserForm1.Hide
End Sub

Private Sub CommandButton2_Click()
UserForm1.Hide
End Sub

Private Sub Label7_Click()

End Sub

Private Sub TextBox2_Change()

End Sub

Private Sub TextBox6_Change()

End Sub
Private Sub TextBox7_Change()

End Sub

Private Sub UserForm_Click()

End Sub
 
M

moustic66

Guest
Je vous joint le fichier (si j'y arrive...) [file name=commande_20060312201430.zip size=46746]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/commande_20060312201430.zip[/file]
 

Pièces jointes

  • commande_20060312201430.zip
    45.7 KB · Affichages: 38

MichelXld

XLDnaute Barbatruc
rebonsoir Moustic66 , bonsoir chers amis José et Thierry


...Oouuppss , j'etais hors sujet ...;o)


tu peux faire un essai en remplaçant dans ta procedure Private Sub ComboBox1_Change()

les lignes

TextBox2.Value = Sheets('liste').Columns('a:a').Find(ComboBox1.Value).Offset(0, 1).Value
TextBox3.Value = Sheets('liste').Columns('a:a').Find(ComboBox1.Value).Offset(0, 2).Value
TextBox4.Value = Sheets('liste').Columns('a:a').Find(ComboBox1.Value).Offset(0, 3).Value
TextBox5.Value = Sheets('liste').Columns('a:a').Find(ComboBox1.Value).Offset(0, 4).Value
TextBox6.Value = Sheets('liste').Columns('a:a').Find(ComboBox1.Value).Offset(0, 5).Value
TextBox7.Value = Sheets('liste').Columns('a:a').Find(ComboBox1.Value).Offset(0, 6).Value

par

TextBox2.Value = Sheets('liste').Cells(ComboBox1.ListIndex + 2, 2).Value
TextBox3.Value = Sheets('liste').Cells(ComboBox1.ListIndex + 2, 3).Value
TextBox4.Value = Sheets('liste').Cells(ComboBox1.ListIndex + 2, 4).Value
TextBox5.Value = Sheets('liste').Cells(ComboBox1.ListIndex + 2, 5).Value
TextBox6.Value = Sheets('liste').Cells(ComboBox1.ListIndex + 2, 6).Value
TextBox7.Value = Sheets('liste').Cells(ComboBox1.ListIndex + 2, 7).Value


une autres possibilité :

Dim i As Integer
For i = 2 To 7
Me.Controls('TextBox' & i).Value = _
Sheets('liste').Cells(ComboBox1.ListIndex + 2, i).Value
Next i



bonne soirée
MichelXld

Message édité par: michelxld, à: 12/03/2006 20:41
 

_Thierry

XLDnaute Barbatruc
Repose en paix
RE Bonsoir

un autre Problème le RowSource en mode Design de la Fenêtre Propriété qui est limité :

liste!a2:a260

Voici un peu modelé le code, dacodac pour le XLWhole !

Option Explicit

Private Sub UserForm_Initialize()
Dim L As Long

    L = Sheets('liste').Range('A65536').End(xlUp).Row

    Me.ComboBox1.RowSource = 'Liste!A2:A' & L

End Sub


Private Sub ComboBox1_Change()
Dim CellFound As Range
Dim x As Byte


With Sheets('liste')
   
Set CellFound = .Columns('a:a').Find(ComboBox1.Value, LookAt:=xlWhole)
End With

   
For x = 2 To 7
          Me.Controls('TextBox' & x) = CellFound.Offset(0, x - 1)
   
Next
   
End Sub

Private Sub CommandButton1_Click()
Dim x As Byte

Sheets('Impression').Select
Columns('a:a').Find('Designation').Offset(1, 0).EntireRow.Select
Selection.Insert Shift:=xlDown
ActiveCell.Value = ComboBox1.Value

   
For x = 2 To 7
        ActiveCell.Offset(0, x - 1) = Me.Controls('TextBox' & x)
   
Next

UserForm1.Hide
End Sub

Private Sub CommandButton2_Click()
UserForm1.Hide
End Sub

Bonne Soirée
[ol]@+Thierry[/ol]

Moi je ne vais qu'à la Vitesse du Son seulement celle du Bigger Bang lol
 
M

moustic66

Guest
Bonjour messieur, je viens ici vous remercié de votre aide, apparement tout fonctionne ! :)

Pour info à jmps, j'ai mis les valeur 1, 2, 3 apres la 255, c'était juste pour avoir quelque chose, si je mettais une série article ça ne fonctionnait pas!

En vous remerciant encore, bonne journée!
 

Discussions similaires

Réponses
8
Affichages
303
Réponses
5
Affichages
240
Réponses
4
Affichages
274

Statistiques des forums

Discussions
312 756
Messages
2 091 738
Membres
105 060
dernier inscrit
DEDJAN Gaston