Ranger une valeur dans une cellule (débutant !)

louvierseb Messages postés 63 Date d'inscription mercredi 16 juillet 2008 Statut Membre Dernière intervention 15 juillet 2009 - 10 juil. 2009 à 09:21
cnt Messages postés 219 Date d'inscription lundi 21 novembre 2005 Statut Membre Dernière intervention 20 décembre 2010 - 10 juil. 2009 à 18:57
Bonjour,

Je suis actuellement en train d'écrire une macro, je suis dans une boucle et j'aimerais ranger les valeurs val dans une colonne tous les k lignes (k varie).

J'ai essayé les commandes suivantes qui ne marchent pas :

Cells(k, 20) = Val

Range("Tk").Offset(i - 1) = Val

Si quelqu'un a une idée...
Merci d'avance
Vincent

7 réponses

papaye976 Messages postés 17 Date d'inscription jeudi 9 septembre 2004 Statut Membre Dernière intervention 10 juillet 2009
10 juil. 2009 à 09:51
oui, une idée !!!

il faut affecter la propriété "Value" de la cellule:

Cells(k,20).Value = Val

Jette un oeil sur l'explorateur d'objet (barre d'outils ou F2) pour avoir la liste des méthodes et propriétés des objets VBA, en particulier sur la classe Range qui semble t'intéresser...
0
louvierseb Messages postés 63 Date d'inscription mercredi 16 juillet 2008 Statut Membre Dernière intervention 15 juillet 2009
10 juil. 2009 à 10:27
Merci mais ca ne marche pas... a mon avis le problème c'est le paramètre k, il ne le prend pas en compte.
Je cherche dans l'explorateur objet mais je n'ai pas trouvé mon bonheur...

Si quelqu'un d'autre voit une solution je le remercie de me l'écrire.
Merci d'avance
Vincent
0
papaye976 Messages postés 17 Date d'inscription jeudi 9 septembre 2004 Statut Membre Dernière intervention 10 juillet 2009
10 juil. 2009 à 10:46
public sub counting()
dim k as integer
    for k = 1 to 10
        activesheet.cells(k,1).value = k
    next k
end sub

qu'est-ce qui ne fonctionne pas ???
0
louvierseb Messages postés 63 Date d'inscription mercredi 16 juillet 2008 Statut Membre Dernière intervention 15 juillet 2009
10 juil. 2009 à 11:39
Ce qui ne va pas c'est que k ne croit pas de 1 en 1, mais il peut avoir les valeurs suivantes : 2, 5 , 15 , 25.
Donc je voudrais mettre la valeur val dans la colonne 20 dans les lignes qui ont les valeurs de k.
Je ne sais pas si j'ai été clair dans mes explications...

Merci
0

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

Posez votre question
papaye976 Messages postés 17 Date d'inscription jeudi 9 septembre 2004 Statut Membre Dernière intervention 10 juillet 2009
10 juil. 2009 à 11:54
Il y a plein de solutions possibles, il est peut-être possible de trouver une formule pour exprimer k ou Val...
Dans l'immédiat tu peux utiliser ce code, et je te recommande de trouver un tutoriel VB et un cours sur la programmation et les algorithmes...

Voici le code:

public sub counting()
dim k as integer
dim tab as variant
    tab = array(2,5,15,25)
    for k = lbound(tab) to ubound(tab)
        activesheet.cells(tab(k),20).value = val
    next k
end sub

N'hésite pas non plus à taper F1 !!!
0
louvierseb Messages postés 63 Date d'inscription mercredi 16 juillet 2008 Statut Membre Dernière intervention 15 juillet 2009
10 juil. 2009 à 13:42
Non mais le problème c'est que k n'est pas fixé, il varie et il y en a une centaine. Donc je ne peux pas mettre tous les "k" codés en dur. Il faut que je l'intègre dans ma formule pour afficher val à la bonne place.
 
Un exemple qui ne marche pas :

public sub counting()
dim k as integer
Dim Val As Double

For i = 0 To Nb_Lignes
   k = Range("G7").Offset(i - 1)        'C'est là que j'obtiens mon k qui est entier   Range("Tk").Offset(i - 1) Val      'Je veux mettre val dans la colonne T et sur la kieme ligne> cette formule ne fonctionne pas
Next i

End sub

Ce cas n'est pas traité dans l'aide...
Merci d'avance !
Vincent
0
cnt Messages postés 219 Date d'inscription lundi 21 novembre 2005 Statut Membre Dernière intervention 20 décembre 2010 1
10 juil. 2009 à 18:57
Salut
Esssayes ces solutions

Range("T" & k).Offset(i - 1) = Val
OU
Range("T" & CStr(k)).Offset(i - 1) = Val

CNTJC
0
Rejoignez-nous