![]() |
| Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé. | |||||||
|
|||||||
![]() |
|
|
Outils de la discussion |
|
|
#1 (permalink) |
|
Invité régulier
![]() Date d'inscription: septembre 2008
Messages: 17
|
bonjour,
Je cherche à récupérer une valeur (la surface d'une pièce) Dans une feuille j'ai le code de la salle et je veux trouver la surface de cette salle. La surface se trouve sur une autre feuille. Jusque là pas de soucis j'utilise le code ci-dessous. Code :
Do While Cells(i, 1) <> "" ' récupère la valeur à chercher Salle = Cells(i, 1).Value ' parcours le tableau de la feuille salle While Sheets("Salle").Cells(j, 1) <> "" If Sheets("Salle").Cells(j, 1) = Salle Then ' renvoie la valeur dans la cellule de la feuille active Cells(i, 8) = Sheets("Salle").Cells(j, 5) End If j = j + 1 Wend j = 1 i = i + 1 Loop Voici le type de tableau que j'ai actuellement. Salles occupées Dates d'occupation m² salle A111; A114; A115 01/09/2008-24/08/2009 A111; A114; A115 01/09/2008-24/08/2009 A111; A114; A115 02/09/2008-25/08/2009 A111; A114; A115 02/09/2008-25/08/2009 A111; A114; A115 03/09/2008-26/08/2009 A111; A114; A115 03/09/2008-26/08/2009 A111; A114; A115 04/09/2008-27/08/2009 A111; A114; A115 04/09/2008-27/08/2009 A111; A114; A115 05/09/2008-28/08/2009 A111; A114; A115 05/09/2008-28/08/2009 0 TOTAL Merci de vos réponse Dernière modification par zazaraignée ; 09/10/2008 à 21h03 Motif: C'est n'importe quoi, ces indentations! |
|
|
|
|
|
#2 (permalink) |
![]() Date d'inscription: février 2004
Localisation: Rimouski
Messages: 3 067
|
Je vois que chaque code est séparé par un point-virgule suivi d'un espace. Tu peux donc faire un Split en spécifiant "; " comme séparateur.
Split sépare ta chaîne en utilisant le caractère ou la chaîne spécifiée ( dans le cas qui nous occupe, "; ") et met les valeurs ainsi séparées dans un tableau de type String. Tu dois déclarer ce tableau sans en spécifier la taille. Code :
Dim tblCodes() As String Si tu as du mal à t'y retrouver avec mes explications sommaires (qui se veulent davantage des pistes de recherche), tu dis.
__________________
|
|
|
|
|
|
#3 (permalink) |
|
Invité régulier
![]() Date d'inscription: septembre 2008
Messages: 17
|
Je me suis inspirée de la réponse
Voila ce que j'obtiens. Code :
Do While Cells(i, 1) <> "" tblcodes() = Split(Cells(i, 1), ";") For k = 0 To UBound(tblcodes) Recherche = tblcodes(k) While Sheets("Salle").Cells(j, 1) <> "" ' parcours le tableau de la feuille salle If Sheets("Salle").Cells(j, 1) = Recherche Then Cells(i, 12) = Cells(i, 8)+ Sheets("Salle").Cells(j,5) 'renvoie la valeur dans la cellule de la feuille active Cells(i, 8)= Cells(i, 12) End If j = j + 1 Wend j = 1 Next k i = i + 1 Loop |
|
|
|
|
|
#4 (permalink) |
![]() Date d'inscription: février 2004
Localisation: Rimouski
Messages: 3 067
|
J'imagine que puisque c'est résolu, tu as compris que tu avais mis ta boucle For au mauvais endroit...
Et puis, si tu indentais ton code correctement, on y verrait certainement plus clair.
__________________
|
|
|
|
|
![]() |
![]() |
||
Rechercher valeur puis les sommer
|
||
Offres d'
emploi informatique
sur Lesjeudis.com
|
| Outils de la discussion | |
|
|