Petit souci avec excel

Résolu
Kep -  
 kep -
Bonjour a tous,
Je vous expose mon probleme j'aimerais incrementer une cellule avec les données d'autres cellules (ok c'est pas clair)
Bon exemple en
A1 il y a le chiffre 2
B1 est utilisé pour y mettre un autre chiffre (mais cette cellule change a chaque nouvelle frappe) et lorsque la donnée en B1 change j'aimerais que le chiffre en A1 s'incremente.
Cordialement
Mick

3 réponses

  1. Syzygy Messages postés 404 Statut Membre 147
     
    Bonsoir,

    Désolé, je ne suis pas sur de comprendre ce que vous voulez. En fait vous souhaitez ajoutez 1 à la valeur contenue dans la cellule A1 à chaque fois que vous modifiez la valeur en B1?

    Si c'est çà, il sera nécessaire de passer par une macro.

    Si ce n'est pas çà, il sera nécessaire d'expliquer plus précisément votre besoin et si possible de nous transmettre votre fichier à l'aide du site www.cijoint.fr

    Bonne soirée,
    0
    1. Kep
       
      Bonsoir Syzygy, c'est exactement ce que je veux faire mais a part les macros "enregistré" je suis un peu leger pour ce souci. Si vous pouvez m'aider cela serai sympa. Merci
      0
  2. Syzygy Messages postés 404 Statut Membre 147
     
    Bonsoir,

    Ok alors pour celà ouvrez l'éditeur VBA d'Excel (VBE) en appuyant sur Alt + F11
    Dans la sélectionnez le module contenant le code de la feuille ou vous voulez effectuer votre incrémentation automatique (Feuil1) dans la partie gauche du VBE.

    Collez le code suivant dans votre module :

    Private Sub Worksheet_Change(ByVal Target As Range)
    'Cette macro s'exécute à chaque changement de valeur intervenant dans la feuille de calcul "Feuil1"

    On Error GoTo Erreur

    If Target.Address = "$B$1" Then 'Test si le cellule modifiée est la cellule "B1"
    Range("A1").Value = Range("A1").Value + 1 'Rajoute 1 à la valeur contenue en "A1"
    End If

    Erreur:
    End Sub

    Et hop! Ca devrait marcher (pour peu que la valeur en A1 soit vide ou un nombre évidemment).

    Bonne soirée,
    0
    1. Kep
       
      bonjour Syzygy,
      cela me plait beaucoup pour le resultat mais ce que j'ai oublié de te dire c'est que le resultat en A1 doit correspondre a la somme de A1 + la valeur de B1 (j' ai essayé de remplacer la valeur de la macro par $b$1 mais cela ne marche pas ) . Je peux inserer des colonnes car mon tableau resemble a ça :
      A1 B1 C1
      1 1 Paris
      9 2 Noyelles
      4 3 Englos
      L'idée est lorsque efface la colone B et que je la remplace par une nouvelle serie de chiffre la valeur en A affiche le resulat de A+B. J'ai environ 30 lignes.
      Merci beaucoup pour ton aide.
      Bon dimanche
      0
    2. Syzygy Messages postés 404 Statut Membre 147
       
      Bonjour,

      A oui mais là ce n'est plus du tout la même chose.

      Essaye ceci :

      Private Sub Worksheet_Change(ByVal Target As Range)
      Dim NumeroLigne As Integer
      Dim ValeurA As Double
      Dim ValeurB As Double

      On Error GoTo Fin

      NumeroLigne = ActiveCell.Row
      ' Si vous validez vos enregistrements à l'aide de la touche "Entrée", décommentez la ligne ci-dessous.
      'NumeroLigne = NumeroLigne - 1

      If Target.Row = NumeroLigne And Target.Column = 2 Then
      If IsEmpty(Range("C" & NumeroLigne).Value) Then 'Teste si la colonne C est vide. Si elle l'est n'effectue pas l'opération.

      Else
      ValeurA = Range("A" & NumeroLigne).Value 'Récupère la valeur de la cellule A
      ValeurB = Range("B" & NumeroLigne).Value 'Récupère la valeur de la cellule B
      Range("A" & NumeroLigne).Value = ValeurA + ValeurB 'Affecte la nouvelle valeur à la cellule A
      End If
      End If

      Fin:
      End Sub

      Cette solution fonctionne uniquement si tu modifies une cellule à la fois et que tu valides à l'aide de la touche tabulation (ou entrée en décommentant la ligne indiquée).

      Je n'ai pas trouvé mieux que çà pour le moment.

      @+
      0
    3. kep
       
      C'est génial. merci
      dis moi lorsque je change dans la macro les valeurs A,B,C par d'autre colonne par exemple F,J,D cela ne fonctionne plus (je me bat avec depuis 1:2h ) ;-).
      Mais c'est pas grave je m'adapte.
      Merci encore
      a+
      0
    4. Syzygy Messages postés 404 Statut Membre 147
       
      En modifiant le nom des colonnes, il faut effectivement modifier les lettres mais également cette ligne :

      If Target.Row = NumeroLigne And Target.Column = 2 Then

      Le test Target.Column = "Un chiffre" vérifie les coordonnées de la colonne. Le chiffre 1 équivaut à la colonne A, le 2 correspond à la colonne B...

      Par exemple si tu veux réaliser la macro sur un changement de valeur en colonne D par exemple il faudra changer la ligne en :

      If Target.Row = NumeroLigne And Target.Column = 4 Then

      Bon après-midi,
      0
    5. kep
       
      Ok merci
      Cette fois c'est bon
      A bientot pour d'autre pb.
      0
  3. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    bonjour,

    si on incrémente de la valeur en B1

    une petite astuce-bidouille sans macro:

    en A1 tu écris
    =A1+B1
    tu passe outre l'avertissement de référence circulaire

    et avec XL2007
    dans options xl - formules tu actives le calcul itératif avec un nbre maximum de 1
    https://www.cjoint.com/?3IshPosUw3s
    0
    1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      Bonjour tout le monde,

      et avec XL2007
      dans options xl - formules tu actives le calcul itératif avec un nbre maximum de 1

      A faire également sur 2003 dans 'outils / options...' onglet 'calcul'

      eric
      0
    2. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      kep, on sent le fromage ?
      C'est dingue de devoir rappeler la coutoisie minimum...
      0
    3. kep
       
      Salut ,
      excusez moi messieurs mais je viens juste de voir vos messages. Je debute sur le forum, j'étais concentré sur les messages de Syzygy.
      Bon dimanche a tous
      0
    4. Kep
       
      bonjour Michel,
      J'admet que c'est pas mal.(mais comment remettre a zero la colonne A sans devoir retaper la formule).
      Encore une fois desolé pour la non reponse de ma part.
      Cordialement
      0
    5. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      Tu as le droit de saisir des nombres négatifs...
      Mais attention si tu ne vide pas B1 avant une action ailleurs sur la feuille.
      Chaque recalcul de la feuille t'additionne la valeur B1 en A1
      eric
      0