Petit souci avec excel

Résolu/Fermé
Kep - 17 sept. 2011 à 21:50
 kep - 19 sept. 2011 à 15:35
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



A voir également:

3 réponses

Syzygy Messages postés 378 Date d'inscription vendredi 29 avril 2011 Statut Membre Dernière intervention 31 décembre 2011 142
17 sept. 2011 à 22:00
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
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
Syzygy Messages postés 378 Date d'inscription vendredi 29 avril 2011 Statut Membre Dernière intervention 31 décembre 2011 142
17 sept. 2011 à 23:17
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
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
Syzygy Messages postés 378 Date d'inscription vendredi 29 avril 2011 Statut Membre Dernière intervention 31 décembre 2011 142
18 sept. 2011 à 10:54
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
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
Syzygy Messages postés 378 Date d'inscription vendredi 29 avril 2011 Statut Membre Dernière intervention 31 décembre 2011 142
18 sept. 2011 à 12:46
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
Ok merci
Cette fois c'est bon
A bientot pour d'autre pb.
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
18 sept. 2011 à 07:44
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
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
18 sept. 2011 à 10:37
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
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
18 sept. 2011 à 12:53
kep, on sent le fromage ?
C'est dingue de devoir rappeler la coutoisie minimum...
0
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
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
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
Modifié par eriiic le 18/09/2011 à 13:51
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