Aide pour macro excel

Résolu
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!!!
Configuration: Windows XP
Internet Explorer 7.0

13 réponses

  1. 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é?
    0
    1. 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
      0
      1. mais des que j'aurais mis une valeur dans les lignes 3, elles s'incrementeront de 5 comme les lignes du dessus

        Donc si je renseigne en C4 = 7; D4 =12; et E4 = 10
        après avoir lancé la macro j'obtiens C5 = 12; D5 =17; et E5 = 15

        Si un des trois colonne n'est pas renseignée?
        C4=""; C5=5 ?
        0
    2. 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?
      0
      1. Je résume:

        les cellules en C, D, E seront toujours supérieures ou égales à 0 (jamais vides),
        et la macro agit sur la dernière ligne renseignée. (0 = 0; >0 = +5)

        J'y regarde dans quelques heures.
        Il est 1h45, très belle heure pour aller se coucher. ;-)

        Bonne nuit.
        0
      2. Contributeur
        @chtilouTrop tard, fallait pas dormir... ;-)
        0
      3. @eriiicGrrrrrrrrrr.

        Lu Eric déjà debout. (euhhh enfin assis).

        Bon week-end à tous.
        0
    3. 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
      0
      1. Contributeur
        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 cel
        End Sub

        http://www.cijoint.fr/cjlink.php?file=cj200805/cijgyZm1rB.xls

        eric
        0
        1. 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
          0
          1. Contributeur
            et bien tu ajoutes la quantité que tu veux :
            ... = cel.Value + 0.05
            0
            1. Bizarre, moi je me retrouve avec des valeurs qui ne corrspondent pas!!
              depart 5% ensuite 55%?
              depart 25% devient 525%
              0
              1. Contributeur
                et bien tu ajoutes la quantité que tu veux :
                ... = cel.Value + 0.05

                tu modifies un peu le programme pour l'adapter à tes besoins...
                0
                1. Ah ok, j'avais pas pensé que 5% etait egal a 0.05!!
                  Merci!!
                  Probleme resolu!!
                  0
                  1. 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!!
                    0
                    1. Contributeur
                      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
                      0
                      1. Ok Merci bien, sa fonctionne impec!!
                        0