Qui peut m'aider ?

kobejul08 Messages postés 113 Date d'inscription vendredi 15 avril 2005 Statut Membre Dernière intervention 3 octobre 2005 - 10 juin 2005 à 12:26
ScSami Messages postés 1488 Date d'inscription mercredi 5 février 2003 Statut Membre Dernière intervention 3 décembre 2007 - 10 juin 2005 à 17:11
Bonjour,

Voilà mon code marche mais le problème c'est qu'il affiche tout le classeur excel et moi j'aimerais qui s'arrête dés qu'il trouve une cellule blanche pour qu'il n'inscrive que les options existantes et pas le reste!!
Quelqu'un peut m'aider?


'Pour éviter de trainer toute une liste
Dim l_Workbook As Excel.Workbook
Dim l_Sheet As Excel.Worksheet


Set l_Workbook = monxl4.Workbooks.Open(Chemin)
Set l_Sheet = l_Workbook.Worksheets("AFICIO 1515.1515PS.1515F.1515MF")
For i = 1 To 33


'Et ensuite je travaille uniquement avec l_Sheet:

Txtdétails1(i).Text = l_Sheet.Cells(i + 8, 2).Value


Txtprix1(i).Text = l_Sheet.Cells(i + 8, 4).Value


Next i

8 réponses

ScSami Messages postés 1488 Date d'inscription mercredi 5 février 2003 Statut Membre Dernière intervention 3 décembre 2007 24
10 juin 2005 à 12:52
Il faut faire un test logique du style :



For i = 1 To 33

If l_Sheet.Cells(i + 8, 2).Value <> "" Then Txtdétails1(i).Text = l_Sheet.Cells(i + 8, 2).Value

If l_Sheet.Cells(i + 8, 4).Value <>"" Then Txtprix1(i).Text = l_Sheet.Cells(i + 8, 4).Value

Next i





Tu n'es pas très clair concernant ton problème!!! Alors j'espère que ça
t'aidera quitte à ce que tu adaptes cet exemple à tes propres besoins!



Enjoy



(Si une réponse vous convient, cliquez sur le bouton en dessus...)
0
kobejul08 Messages postés 113 Date d'inscription vendredi 15 avril 2005 Statut Membre Dernière intervention 3 octobre 2005
10 juin 2005 à 13:09
En fait je veux juste afficher mes options a partir de la cellule B9 quoi et par exemple dans le premier cas il y a en que 8 ... ensuite il y une ligne blanche et en dessous encore d'autres choses ...
Ce que tu m'as donnés ne change rien il va jusque 33 lignes plus bas ..
0
ScSami Messages postés 1488 Date d'inscription mercredi 5 février 2003 Statut Membre Dernière intervention 3 décembre 2007 24
10 juin 2005 à 14:19
Franchement, essaye de faire des effort pour qu'on
comprenne ce que tu veux! On est pas dans tête ou devant ton écrant
pour deviner ce que tu veux et très franchement, je ne pige rien à ce
que tu baffouilles dans tes posts!



De plus, ce que je t'ai donné n'est qu'un exemple!!! A toi de l'adapter correctement à ta source!!!



Bref, si je t'ai compris (!!!), utilise la boucle Do/Loop :



Do While MaCellule.Value <> ""

...

Loop



Enjoy
0
kobejul08 Messages postés 113 Date d'inscription vendredi 15 avril 2005 Statut Membre Dernière intervention 3 octobre 2005
10 juin 2005 à 14:53
Bon je vais essayer de mieux m'exprimer ... car je pense que c'est tout con en fait mais que tu comprends pas ce que je veux dire ...
Donc avec le code si dessus je veux aller chercher dans mon classeur excel dans la feuil "AFICIO 1515.1515PS.1515F.1515MF" des données (options en fait)

Ces options commencent dans mon classeur toujours en B10 et les pris correspondant en D10
Suivant le produit il y a différentes options jusque 33 maximum !!(d'ou le For i = 1 to 33)
seulement dans certains cas il n'y en a que 8 ... et dans ce cas précis avec 8 le code prend tout le reste du classeur jusqu'a B43 et D43 j'aimerais que quand il rencontre une cellule vide qu'il s'arrête.

Est plus clair ? Merci de me dire c'est gentil
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ScSami Messages postés 1488 Date d'inscription mercredi 5 février 2003 Statut Membre Dernière intervention 3 décembre 2007 24
10 juin 2005 à 15:28
Ben voilà .



Donc, j'avais bien compris la première fois!

Il faut donc tester le contenu de chaque ligne :




For i = 1 To 33
If l_Sheet.Cells(i + 8, 2).Value = "" Then Exit For

...
Next i



Exit For mettant fin à la boucle. Alors évidemment, c'est à toi
d'adapter ce code hein!!! Fait pas seulement copier/coller parce que
sinon ça risque pas de marcher OK!!!



Celà répond-t-il à ta question ou pas encore ???



Enjoy




(Si une réponse vous convient, cliquez sur le bouton en dessus...)
0
kobejul08 Messages postés 113 Date d'inscription vendredi 15 avril 2005 Statut Membre Dernière intervention 3 octobre 2005
10 juin 2005 à 15:35
je vais essayer mais il me semble que j'avais déjà essayer avec le exit for ....-)
Et bien sur que non que je vais pas faire du copier coller mon code est différent et plus long donc j'adapte là Merci , et excuse du dérangement ... si ça marche de toute façon je t'allume en vert !! -)
0
kobejul08 Messages postés 113 Date d'inscription vendredi 15 avril 2005 Statut Membre Dernière intervention 3 octobre 2005
10 juin 2005 à 16:22
a mon avis j'ai mal mis certaine variable car il ne m'affiche rien et il sort immédiatement p-ê saurais tu corrigé?Merci
For i = 1 To 33
If l_Sheet.Cells(i + 8, 2).Value <> "" Then
Exit For

Txtdétails1(i).Text = l_Sheet.Cells(i + 8, 2).Value
End If

Next i
For i = 1 To 33
If l_Sheet.Cells(i + 8, 4).Value <> "" Then Exit For

Txtprix1(i).Text = l_Sheet.Cells(i + 8, 4).Value
Next i
0
ScSami Messages postés 1488 Date d'inscription mercredi 5 février 2003 Statut Membre Dernière intervention 3 décembre 2007 24
10 juin 2005 à 17:11
Le problème vient de ton code !!! Ca veut rien dire ce que t'a écris !!! Ecris donc plutot ça :



For i = 1 To 33

If l_Sheet.Cells(i + 8, 2).Value <> "" Then Exit For

Txtdétails1(i).Text = l_Sheet.Cells(i + 8, 2).Value

Next i



Là, ça fonctionnera je pense





Enjoy



(Et n'oublie pas de me mettre en vert )
0
Rejoignez-nous