UrbanSyphon
Messages postés22Date d'inscriptionjeudi 3 juillet 2008StatutMembreDernière intervention17 juin 2009
-
28 juil. 2008 à 17:17
UrbanSyphon
Messages postés22Date d'inscriptionjeudi 3 juillet 2008StatutMembreDernière intervention17 juin 2009
-
29 juil. 2008 à 14:18
Bonjour
lors de l'execution de mon programme j'ai l'erreur "l indice est en dehors de la plage" et je ne comprend pas pourquoi je vais donc vous donner le morceau de code qui provoque cette erreur
pourriez vous m'aider à la resoudre merci
Private Sub Option2_Click()
Dim y As Integer 'declaration de la variable a incrementer
'qui correspond y la valeur de la ligne
Dim data As String ' declaration de la variable qui prendra comme
'valeur le contenu de la cellule
Dim monclasseur As Excel.Workbook 'declaration d'une variable comme classeur excel
Set monclasseur = Workbooks.Open("z:\stages\X_XXXXXX\compacteurs2_vm.xls") 'qui prendra comme valeur le fichier test.xls placé dans z
y = 1 'attribution de la valeur "1" à "y"
suite: 'debut d'un sous programme appele suite
y = y + 1 'incremente "y" de "1"
data = Sheets("données").Range("B" & y) 'place la valeur de la cellule de colonne "B" et de
'ligne "y" dans "data"
If data = "" Then GoTo fin 'si la cellule est vide alors on saute à fin
Combo3.AddItem data 'on ajoute le contenu de "data" dans le combo3
GoTo suite 'on retourne au sous prog "suite"
fin: 'début d'un sous prog appele "fin
Workbooks.Close
End Sub
le tableau excel comporte + de400 lignes et 15 colonnes.
Merci pour l'aide que vous m apporterez
Nous entrainerons nos coeurs et nos corps afin d'acquérir un esprit sans faiblesse.
.:Vive le Shidokan:.
cs_eldim
Messages postés956Date d'inscriptionlundi 30 mai 2005StatutMembreDernière intervention21 août 20141 28 juil. 2008 à 17:36
Bonjour,
évite les goto et remplace ça par des while déja ce sera plus clair...
ensuite n'oublie pas de préciser le classer dans ton appel : data = Sheets("données").Range("B" & y)
sinon tu es toujours dans ton classeur de départ...
également quand tu travailles avec des lignes dans excel il faut passer par un long et non un integer... sous peine de dépassement de capacité
surtout précise le classeur que tu fermes (à mon avis le problème vient de là) : Workbooks.Close
à remplacer : monclasseur.close
-- Pourquoi faire simple quand on peut faire compliquer --
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 28 juil. 2008 à 18:53
thème topic : déplacé de VB6 vers VBA !!!!!!!
pour le problème...., OUT OUF RANGE à l'air assez clair ; la ligne pour y n'est pas infinie...
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
UrbanSyphon
Messages postés22Date d'inscriptionjeudi 3 juillet 2008StatutMembreDernière intervention17 juin 2009 29 juil. 2008 à 09:10
Bonjour eldim j' ai regardé ce que tu m' as proposé et j'ai changé des partie de mon code mais il y a un problème, toujour d indice en dehors de la plage sur cette ligne de code : "data = Sheets("données").Range("B" & y)" et dans ton explication je ne vois pas trop ce que tu veux dire avec "ensuite n'oublie pas de préciser le classer dans ton appel " je te remercie déjà de l'aide que tu m as fourni et si tu peux encore perdre un peu de temps pour finaliser ce problème j'en serai ravi merci
Nous entrainerons nos coeurs et nos corps afin d'acquérir un esprit sans faiblesse.
.:Vive le Shidokan:.
UrbanSyphon
Messages postés22Date d'inscriptionjeudi 3 juillet 2008StatutMembreDernière intervention17 juin 2009 29 juil. 2008 à 09:18
bonjour PCPT
Merci de l'intérrêt que tu me porte mais je ne comprend pas du tous ce que tu veux me die je commence à peine la prog donc si tu pouvais être un peu plus claire pour un débutant ca serai sympa merci d'avance
Nous entrainerons nos coeurs et nos corps afin d'acquérir un esprit sans faiblesse.
.:Vive le Shidokan:.
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_eldim
Messages postés956Date d'inscriptionlundi 30 mai 2005StatutMembreDernière intervention21 août 20141 29 juil. 2008 à 09:32
Dim monclasseur As Excel.Workbook
Set monclasseur = Workbooks.Open("z:\stages\X_XXXXXX\compacteurs2_vm.xls")
dim Y as long
y=1
while len(trim$(monclasseur.Sheets("données").Range("B" & y).value))>0 and y<65535
Combo3.AddItem monclasseur.Sheets("données").Range("B" & y).value
y=y+1
wend
monclasseur.Close
-- Pourquoi faire simple quand on peut faire compliquer --
UrbanSyphon
Messages postés22Date d'inscriptionjeudi 3 juillet 2008StatutMembreDernière intervention17 juin 2009 29 juil. 2008 à 09:46
IL y a toujours le problème d'erreur je comprend pas pourquoi il y a peut etre un problem de configuration? le problem est sur cette ligne : "while len(trim$(monclasseur.Sheets("données").Range("B" & y).value))>0 and y<65535"
Nous entrainerons nos coeurs et nos corps afin d'acquérir un esprit sans faiblesse.
.:Vive le Shidokan:.
cs_eldim
Messages postés956Date d'inscriptionlundi 30 mai 2005StatutMembreDernière intervention21 août 20141 29 juil. 2008 à 11:01
en pas à pas ça donne koi ? (F8)
il y a plusieurs passages dans la boucle ou il plante dès le premier ? (as-tu bien vérifié que ta feuille "données" existe dans "monclasseur" ?)
-- Pourquoi faire simple quand on peut faire compliquer --
UrbanSyphon
Messages postés22Date d'inscriptionjeudi 3 juillet 2008StatutMembreDernière intervention17 juin 2009 29 juil. 2008 à 13:48
Désolé eldim de t avoir dérangé avec cette dernière question l'erreur été une faute d'étourderie j avais complètement oublié de mettre le nom de ma feuille excel dans"Sheets("données").Range("B" & y) " elle ne s apellé pas données je mettais trompé mais je te remercie pour l'aide précieuse que tu m as apporté
merci encore et a+
Nous entrainerons nos coeurs et nos corps afin d'acquérir un esprit sans faiblesse.
.:Vive le Shidokan:.
UrbanSyphon
Messages postés22Date d'inscriptionjeudi 3 juillet 2008StatutMembreDernière intervention17 juin 2009 29 juil. 2008 à 14:18
Désolé de te dérangé à nouveau mais je rencontre un autre problème je n'arrive pas a utiliser les valeurs des autres colonnes de ma base de donnée excel suivant le choix que j' ai fait dans ma combobox que l on vient de remplir d'une colonne de la base de donnée
Nous entrainerons nos coeurs et nos corps afin d'acquérir un esprit sans faiblesse.
.:Vive le Shidokan:.