Aide pour macro excel
Résolu
perrus53
Messages postés
1024
Statut
Membre
-
perrus53 Messages postés 1024 Statut Membre -
perrus53 Messages postés 1024 Statut Membre -
Bonjour,
Je souhaite créér une macro pour mon classeur, car enfait, j'ai des valeurs dans les colonnes C;D et E, et donc je souhaite que quand je clique sur un bouton, ces trois colonnes s'incrementent de 5 (mis a part C1, D1 et E1 qui contiennent le titre), mais vu que les colonnes ne sont pas encores remplies mais se remplissent tranquillemnt, il faut que les cases vides ne s'incrementent pas, et des qu'il y aura une valeur cela se mette a incrementer.
Voila, en esperant que cela soit possible.
Merci d'avance
--
Acquerrir un savoir c'est bien, le partager c'est mieux.
Ne pas oublier de mettre en resolu une fois le probleme resolu, pour aider les autres!!!
Je souhaite créér une macro pour mon classeur, car enfait, j'ai des valeurs dans les colonnes C;D et E, et donc je souhaite que quand je clique sur un bouton, ces trois colonnes s'incrementent de 5 (mis a part C1, D1 et E1 qui contiennent le titre), mais vu que les colonnes ne sont pas encores remplies mais se remplissent tranquillemnt, il faut que les cases vides ne s'incrementent pas, et des qu'il y aura une valeur cela se mette a incrementer.
Voila, en esperant que cela soit possible.
Merci d'avance
--
Acquerrir un savoir c'est bien, le partager c'est mieux.
Ne pas oublier de mettre en resolu une fois le probleme resolu, pour aider les autres!!!
Configuration: Windows XP Internet Explorer 7.0
13 réponses
-
Bonsoir perrus53.
Un truc dans le style:
Tu saisis 5 en C2, la valeur 10 s'affiche C1?
Et quand tu saisis 10 en C2, la valeur 15 s'affiche en C2 et C1 passe de 10 à 15 ou reste figé? -
Non, exemple:
j'ai x en c1, y en d1, z en e1
5 en c2, 5 en d2, 5 en e2
rien en c3, d3, e3
Si je clique sur mon bouton (pour lancer la macro), c2, d2 et e2 passent a 10, mais pas les lignes 3 (elles sont vides), mais des que j'aurais mis une valeur dans les lignes 3, elles s'incrementeront de 5 comme les lignes du dessus -
Non, selon ton exemple je souhaite avoir: apres la macro: C4=12, D4=17, e4=15
C5,d5 et e5 restent vides car elles sont egales a 0
Si je ne renseigne pas une case elle reste vide
Pour etre plus clair, je voudrais que chaque case n'ai aucun rapport avec les autres, simplement des que j'execute la macro, si la case (ex C2) =0, apres la macro c2=0, si c2>0, apres j'ai C2+5
Mais je voudrais que ce systeme fonctionne pour toutes les cases des colonnes que j'ai dit (C,D et E) sans avoir a faire une macro par case.
Suis-je plus clair? -
Non toujours pas (on approche) ;-)
Les cellules peuvent etres vides, et la macro agit sur toutes les cases des colonnes C,D,E qui ne sont pas vides -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Bonjour,
Solution par macro :Sub inc5() Dim lmax As Long, lmax1 As Long Dim cel As Range ' recherche dernière ligne lmax = [C65536].End(xlUp).Row lmax1 = [D65536].End(xlUp).Row If lmax1 > lmax Then lmax = lmax1 lmax1 = [E65536].End(xlUp).Row If lmax1 > lmax Then lmax = lmax1 If lmax = 1 Then Exit Sub ' incrémenter cellules For Each cel In Range("C2:E" & lmax) If IsNumeric(cel) And cel > 0 Then cel.Value = cel.Value + 5 Next celEnd Sub
http://www.cijoint.fr/cjlink.php?file=cj200805/cijgyZm1rB.xls
eric -
Ok on est res proche, je voudrais juste preciser (j'avais oublie desolé) que les cases sont en pourcentage! sorry!
Donc cela ne fonctionne pas tout a fait -
et bien tu ajoutes la quantité que tu veux :
... = cel.Value + 0.05 -
Bizarre, moi je me retrouve avec des valeurs qui ne corrspondent pas!!
depart 5% ensuite 55%?
depart 25% devient 525% -
et bien tu ajoutes la quantité que tu veux :
... = cel.Value + 0.05
tu modifies un peu le programme pour l'adapter à tes besoins... -
Ah ok, j'avais pas pensé que 5% etait egal a 0.05!!
Merci!!
Probleme resolu!! -
Peut tu me redonner la macro modifiée pour que je puisse augmenter chaque colonne d'une valeur differente?
+0.05 pour C, +0.05 pour D, et +5 pour E, j'ai essayé mais je n'ai pas reussi!! -
Sub inc5() Dim lmax As Long, lmax1 As Long Dim cel As Range ' recherche dernière ligne lmax = [C65536].End(xlUp).Row lmax1 = [D65536].End(xlUp).Row If lmax1 > lmax Then lmax = lmax1 lmax1 = [E65536].End(xlUp).Row If lmax1 > lmax Then lmax = lmax1 If lmax = 1 Then Exit Sub ' incrémenter cellules For Each cel In Range("C2:D" & lmax) If IsNumeric(cel) And cel > 0 Then cel.Value = cel.Value + 0.05 Next cel For Each cel In Range("E2:E" & lmax) If IsNumeric(cel) And cel > 0 Then cel.Value = cel.Value + 5 Next cel End Sub
Tu n'oublieras pas de mettre en résolu stp. Merci
eric -