mon code ne marche plus sous office 2007

Toutou

XLDnaute Occasionnel
Bonjour a tous,

il y a qq temps j'ai programme un pti truc qui marchait parfaitement pour le boulot mais depuis que l'entreprise est passee sous office 2007 plus rien en marche.

Avant la procedure suivante fonctionnait sans probleme pour remplir un combobox dans un UsF:

dim MaCellule as range

For Each MaCellule In Sheets("Defect List").Range("A5:A20")
UsF1.CbxDefectType.AddItem MaCellule
Next MaCellule

Et maintenant on me renvoie une erreure 1004

Pour verifier mon code, j'ai cree un nouveau fichier excel avec un nouveau Usf et un nouveau Combobox et retaper ce mm code et la, ca marche... je n'y comprends plus rien.
Pourquoi la procedure marhe dans un sinple fichier et pas dans mon programme?

Quelqu'un pourrait-il m'aider SVP?

d'avance merci

Toutou
 

ledzepfred

XLDnaute Impliqué
Re : mon code ne marche plus sous office 2007

Bonsoir toutou,

à tout hasard, as-tu vérifié s'il n'y a pas de références manquantes dans ton programme: voir Outils / Références dans l'éditeur Vba (c'est comme ça en Excel 2003, pour 2007 je ne sais pas).
Si une référence manquante est cochée il faut la décochée et la remplacée par la bonne:

exemple : remplacer Microsoft Office 10.0 Object Library (à décocher) par Microsoft Office 12.0 Object Library (à cocher)

A+
 

JNP

XLDnaute Barbatruc
Re : mon code ne marche plus sous office 2007

Bonjour Toutou, LedZepFred :),
Ça fait tellement longtemps que je suis sous 2007 que je ne me souviens plus en 2003, mais il me semble que c'est le "Next MaCellule" qui plante, à remplacer par "Next" tout cours
Code:
dim MaCellule as range
For Each MaCellule In Sheets("Defect List").Range("A5:A20")
UsF1.CbxDefectType.AddItem MaCellule
Next
Bonne journée :cool:
 

Toutou

XLDnaute Occasionnel
Re : mon code ne marche plus sous office 2007

Bonjour, Ledzepfred, JNP, le forum,

oui la reference pour office 2007 est bien selectionne.
J'ai essaye en remplacant le "Next MaCellule" par un simple "Next" et ca marche du tonnerre!!

Merci infiniment!

bonne journee

Toutou ;)
 

Toutou

XLDnaute Occasionnel
Re : mon code ne marche plus sous office 2007

Re,

toujours au sujet de office 2007,
je souhaite remplir une combobox avec des donnees situees sur la feuille ("MaFeuille") a partir de la cellule "A5". Cependant la longueur de cette liste de donnees peut varier a tout moment. D'ou l'utilisations du code suivant:

Dim MaCellule as range
For Each Macellule In Sheets("MaFeuille").Range("A5:A" & Range("A65536").End(xlUp).Row)
combobox1.AddItem MaCellule
Next

Le probleme: avec excel 2007, ma combobox contient maintenant les donnees comprises entre les cellules A1 et A5 au lieu des cellules A5 et suivantes.
Quelqu'un saurait comment y remedier SVP ??

merci

Toutou
 

Toutou

XLDnaute Occasionnel
Re : mon code ne marche plus sous office 2007

RE,

j'ai finalement reussi a resoudre mon probleme. Si ca peut aider quelqu'un voila le code que j'ai utilise:

Private Sub UserForm_Initialize()

Dim MaCellule as Range
Dim EndLine As Integer

EndLine = Sheets("MaFeuille").Range("A65536").End(xlUp).Row

For Each MaCellule In Sheets("MaFeuille").Range("A5:A" & EndLine)
Combobox1.AddItem MaCellule
Next

End Sub


En esperant que ca puisse aider
bonne journee a tous

Toutou
 

JNP

XLDnaute Barbatruc
Re : mon code ne marche plus sous office 2007

Re :),
Enchanté que ça ai marché. Pour info, 2007 ayant plus de 65.536 lignes (très exactement 1.048.576 lignes :p), le End(xlUp) n'est plus exact (enfin, dans les cas extrèmes :D). Plus sérieusement, j'ai pu constater qu'il buguait régulièrement (surtout avec des cellules non correctement nettoyées...), d'où j'utilise plutôt du While Wend, soit
Code:
Dim I As Integer
I = 5
While Cells(I, 1) <> ""
...
I = I + 1
Wend
Bonne soirée :cool:
 

JNP

XLDnaute Barbatruc
Re : mon code ne marche plus sous office 2007

Re :),
Entièrement d'accord, LedZepFred, mais il faut quand même remplir le dico, ce qui n'enlève pas les bugs (ou quand Robert plante :D...) de End(xlUp) :p...
Bonne soirée :cool:
 

Roland_M

XLDnaute Barbatruc
Re : mon code ne marche plus sous office 2007

bonjour à tous

Toutou, pour le nombre de lignes...

Dim EndLine As Long ' < important !!!
EndLine= Sheets("MaFeuille").Rows.Count ' < nbre de lignes réelles(valable toutes feuilles)
EndLine = Sheets("MaFeuille").Range("A" & EndLine).End(xlUp).Row
 

Statistiques des forums

Discussions
314 628
Messages
2 111 337
Membres
111 107
dernier inscrit
cdel