Donner une valeurs à des cellules sous condition (If Then Else)
titoo22
Messages postés15Date d'inscriptionvendredi 15 décembre 2000StatutMembreDernière intervention12 août 2008
-
9 juil. 2008 à 13:27
titoo22
Messages postés15Date d'inscriptionvendredi 15 décembre 2000StatutMembreDernière intervention12 août 2008
-
11 juil. 2008 à 09:04
Salut tout le monde,
J'ai un ptit soucis, je dois donner une valeur à des cellules de la colonnes D en fonctione de valeurs de la colonne C (Toutes en string). J'ai commencé un ptit programme mais il ne fonctionne pas et je n'arrive pas à savoir comment faire... Je vous donne le code :
'Macro créée le 08/07/08 par MOI
'Attribution des code plateforme aux centres
Sub code_pt_centre()
counter = 0
Range("C3").Select
C = C3 + counter
D = D3 + counter
While C <> ""
'BO? utilisé pour renvoyer toutes les cellules ayant BO+1 caractère _
même principe pour HO?
if C="BIS" or "BO?" or "CFS" or "CPL" or "HO?" or "LAC" or "LLJ" or "MIM" _
or "MES" or "MOC" or "POR" or "PAL" or "SME" or "SEB" or "SEI" _
or "SSC" then D="BAC"
End If
counter = counter + 1
Wend
End Sub
Donc voilà si quelqu'un peut m'aider, ça m'enlèverais une belle épine du pied !!
@plouche
A voir également:
Donner une valeurs à des cellules sous condition (If Then Else)
Molenn
Messages postés797Date d'inscriptionmardi 7 juin 2005StatutMembreDernière intervention23 février 20117 9 juil. 2008 à 14:08
Je ne comprends pas ton code, C3 et D3 sont des variables ? Je pense que ce que tu veux faire, c'est mettre la valeur de C3 dans la variable C non ? Dans ce cas, il faut écrire (à condition que tu sois en VBA, mais vu le code, je pense que c'est bien le cas) :
C = Range("C3").value + counter
Ensuite, ta boucle est mal faite je crois, parce que ton bout de code :
C = C3 + counter est en dehors de ta boucle While
Résultat, tu as beau faire counter = counter + 1, ta valeur de C ne change pas et donc, tu ne sortiras jamais de ta boucle (par définition, ta variable C vaut toujours 0, et non "")
D'ailleurs, il faut se poser la question à ce moment là du type de tes variables. Pas de déclaration d'effectuée là.
Enfin, dernière chose, personnellement, pour faire ce que tu veux, une formule Excel suffit, pas besoin de s'embêter avec une macro qu'il faut lancer.
Tu peux utiliser la formule SI, par contre, il faut savoir que tu es limité à 9 conditions, donc, ça ne rentre pas trop dans ton cas. tu peux utiliser une RECHERCHEV ou RECHERCHEH, ce qui me semble bien indiqué pour ce que tu veux obtenir.
Ou alors, tu peux même créer ta propre fonction si tu veux
titoo22
Messages postés15Date d'inscriptionvendredi 15 décembre 2000StatutMembreDernière intervention12 août 2008 9 juil. 2008 à 15:02
Par contre, j'aurais besoin pour un auter programme d'incrémenter mes cellules, c'est ce que j'ai voulu faire là, en fait, je voulais passer de C3 à C4 etc... mais je n'y arrive pas. Y a t il une solution simple pour l'incrémentation ou la solution du compteur est elle valable ?
merci
Molenn
Messages postés797Date d'inscriptionmardi 7 juin 2005StatutMembreDernière intervention23 février 20117 9 juil. 2008 à 17:06
Incrémenter des cellules ? Dans quel sens ?
Si je te suis bien, tu veux passer d'une cellule à une autre ...
Je vais illuster par un petit bout de code : Tu veux afficher le contenu de toutes les cellules d'une plage A1:C:10
'Définition des variables
Dim Ligne as integer
Dim Colonne as integer
Dim i as integer 'Variable de boucle
Dim j as integer 'Variable de boucle
'Initialisation des variables
Ligne = 10 'Nb maximum de ligne de ta plage
Colonne = 3 'Nb maximum de colonnes de ta plage, ici C
'Boucle pour afficher le contenu des cellules
for i = 1 to Colonne
for j = 1 to Ligne
msgbox cells(j,i).value
next j
next i
Molenn
Vous n’avez pas trouvé la réponse que vous recherchez ?
titoo22
Messages postés15Date d'inscriptionvendredi 15 décembre 2000StatutMembreDernière intervention12 août 2008 11 juil. 2008 à 08:58
Ok, merci.
En fait, j'ai une colonne avec des dates (déjà je ne sais pas quelle dimension donner à ma variable est ce que la catégorie string fonctionnera ou il y a un type spécial ??) ensuite, il faut que je vérifie que ma "date +1" (c'est à dire la cellule suivante) si elle est égale ou non. Si elle est différente, je dois la copier dans un autre fichier, en dessous de celle déjà copiée précédemment. Il faut que je fasse une boucle du style :
If (cellule) date+1<>date Then copy (cellule) date+1paste (cellule)date+1 en A2 (par exemple, si j'ai copié la première date en A1).
Mon problème, c'est que je ne sais pas comment faire pour qu'il balaye la colonne de départ de cellule à cellule et qu'il effectue ces opérations.
Voilà.
Je ne sais pas si j'ai été suffisament claire, dis moi si tu ne comprends pas quelque chose, je m'efforcerais de t'éclairer.
titoo22
Messages postés15Date d'inscriptionvendredi 15 décembre 2000StatutMembreDernière intervention12 août 2008 11 juil. 2008 à 09:04
Ah j'ai oublié de dire que je ne pouvais pas utiliser la boucle for parce que c'est un tableau qui change de taille régulièrement alors je ne peux pas définir le nombre de ligne total. En plus, je ne commence pas mon copier coller à la première cellule de ma colonne mais pour ça, j'ai déjà fait un bout de programme pour repérer à quelle cellule commencer.