Petit souci avec excel
Résolu
Kep
-
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
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:
- Petit souci avec excel
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Trier du plus petit au plus grand excel - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
3 réponses
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,
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,
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
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,
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,
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
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
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.
@+
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.
@+
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,
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,
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
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