Bonjour, c'est encore moi!
Comment lier un code VBA à une cellule de la feuille de calcul (si c'est
possible) un peu comme on affecte une macro à un bouton?
Merci de votre aide
Bonjour, c'est encore moi!
Comment lier un code VBA à une cellule de la feuille de calcul (si c'est
possible) un peu comme on affecte une macro à un bouton?
Merci de votre aide
Bonjour, c'est encore moi!
Comment lier un code VBA à une cellule de la feuille de calcul (si c'est
possible) un peu comme on affecte une macro à un bouton?
Merci de votre aide
Salut
c'est possible , en selectionnant la feuille dans la fenetre projectVBA,
dans l'éditeur VBE, puis choisir Worksheet à la place de Général dans la
grande fenêtre code, et l'évenement qui doit déclencher l'execution,
activate, close, selection _change,...
Reste à savoir ton besoin exact...
a+
rural thierry
"Janet81" a écrit dans le message de
news:Bonjour, c'est encore moi!
Comment lier un code VBA à une cellule de la feuille de calcul (si c'est
possible) un peu comme on affecte une macro à un bouton?
Merci de votre aide
Salut
c'est possible , en selectionnant la feuille dans la fenetre projectVBA,
dans l'éditeur VBE, puis choisir Worksheet à la place de Général dans la
grande fenêtre code, et l'évenement qui doit déclencher l'execution,
activate, close, selection _change,...
Reste à savoir ton besoin exact...
a+
rural thierry
"Janet81" <Janet81@discussions.microsoft.com> a écrit dans le message de
news: 75845A1E-AC57-4747-A0C6-6235C1D46C66@microsoft.com...
Bonjour, c'est encore moi!
Comment lier un code VBA à une cellule de la feuille de calcul (si c'est
possible) un peu comme on affecte une macro à un bouton?
Merci de votre aide
Salut
c'est possible , en selectionnant la feuille dans la fenetre projectVBA,
dans l'éditeur VBE, puis choisir Worksheet à la place de Général dans la
grande fenêtre code, et l'évenement qui doit déclencher l'execution,
activate, close, selection _change,...
Reste à savoir ton besoin exact...
a+
rural thierry
"Janet81" a écrit dans le message de
news:Bonjour, c'est encore moi!
Comment lier un code VBA à une cellule de la feuille de calcul (si c'est
possible) un peu comme on affecte une macro à un bouton?
Merci de votre aide
Voici la partie du message que je ne comprend pas, le reste marche jusqu'à
présent:
activate, close, selection _change,...Salut
c'est possible , en selectionnant la feuille dans la fenetre
projectVBA,
dans l'éditeur VBE, puis choisir Worksheet à la place de Général dans la
grande fenêtre code, et l'évenement qui doit déclencher l'execution,
activate, close, selection _change,...
Reste à savoir ton besoin exact...
a+
rural thierry
"Janet81" a écrit dans le message de
news:Bonjour, c'est encore moi!
Comment lier un code VBA à une cellule de la feuille de calcul (si
c'est
possible) un peu comme on affecte une macro à un bouton?
Merci de votre aide
Voici la partie du message que je ne comprend pas, le reste marche jusqu'à
présent:
activate, close, selection _change,...
Salut
c'est possible , en selectionnant la feuille dans la fenetre
projectVBA,
dans l'éditeur VBE, puis choisir Worksheet à la place de Général dans la
grande fenêtre code, et l'évenement qui doit déclencher l'execution,
activate, close, selection _change,...
Reste à savoir ton besoin exact...
a+
rural thierry
"Janet81" <Janet81@discussions.microsoft.com> a écrit dans le message de
news: 75845A1E-AC57-4747-A0C6-6235C1D46C66@microsoft.com...
Bonjour, c'est encore moi!
Comment lier un code VBA à une cellule de la feuille de calcul (si
c'est
possible) un peu comme on affecte une macro à un bouton?
Merci de votre aide
Voici la partie du message que je ne comprend pas, le reste marche jusqu'à
présent:
activate, close, selection _change,...Salut
c'est possible , en selectionnant la feuille dans la fenetre
projectVBA,
dans l'éditeur VBE, puis choisir Worksheet à la place de Général dans la
grande fenêtre code, et l'évenement qui doit déclencher l'execution,
activate, close, selection _change,...
Reste à savoir ton besoin exact...
a+
rural thierry
"Janet81" a écrit dans le message de
news:Bonjour, c'est encore moi!
Comment lier un code VBA à une cellule de la feuille de calcul (si
c'est
possible) un peu comme on affecte une macro à un bouton?
Merci de votre aide
Re
le principe des modules feuille (de même pour le classeur Thisworkbook) est
de s'activer en fonction d'évenements déclencheurs
par exemple, on souhaite un rafraichissement automatique de tableaux croisés
située dans une feuille
et bien on utilisera, l'évenement activate pour mettre le code de
rafraichissement
sub worksheet_activate
....
si on souhaite qu'à chaque fois que l'on frappe quelque chose, cela
s'inscrive en majuscule, on utilisera l'évenement change
sub worksheet_change
etc...
il serait bon que nous puissions savoir ce que tu souhaites faire dans ta
feuille pour pouvoir te renseigner de manière plus précise.
Ne voit pas là une indiscrétion de notre part, mais nos capacités en
divination sont parfois réduite...
;-)
a+
rural thierry
"Janet81" a écrit dans le message de
news:Voici la partie du message que je ne comprend pas, le reste marche jusqu'à
présent:
activate, close, selection _change,...Salut
c'est possible , en selectionnant la feuille dans la fenetre
projectVBA,dans l'éditeur VBE, puis choisir Worksheet à la place de Général dans la
grande fenêtre code, et l'évenement qui doit déclencher l'execution,
activate, close, selection _change,...
Reste à savoir ton besoin exact...
a+
rural thierry
"Janet81" a écrit dans le message de
news:Bonjour, c'est encore moi!
Comment lier un code VBA à une cellule de la feuille de calcul (si
c'estpossible) un peu comme on affecte une macro à un bouton?
Merci de votre aide
Re
le principe des modules feuille (de même pour le classeur Thisworkbook) est
de s'activer en fonction d'évenements déclencheurs
par exemple, on souhaite un rafraichissement automatique de tableaux croisés
située dans une feuille
et bien on utilisera, l'évenement activate pour mettre le code de
rafraichissement
sub worksheet_activate
....
si on souhaite qu'à chaque fois que l'on frappe quelque chose, cela
s'inscrive en majuscule, on utilisera l'évenement change
sub worksheet_change
etc...
il serait bon que nous puissions savoir ce que tu souhaites faire dans ta
feuille pour pouvoir te renseigner de manière plus précise.
Ne voit pas là une indiscrétion de notre part, mais nos capacités en
divination sont parfois réduite...
;-)
a+
rural thierry
"Janet81" <Janet81@discussions.microsoft.com> a écrit dans le message de
news: 63F2AFB3-1B53-4F9A-9486-4463662C9C03@microsoft.com...
Voici la partie du message que je ne comprend pas, le reste marche jusqu'à
présent:
activate, close, selection _change,...
Salut
c'est possible , en selectionnant la feuille dans la fenetre
projectVBA,
dans l'éditeur VBE, puis choisir Worksheet à la place de Général dans la
grande fenêtre code, et l'évenement qui doit déclencher l'execution,
activate, close, selection _change,...
Reste à savoir ton besoin exact...
a+
rural thierry
"Janet81" <Janet81@discussions.microsoft.com> a écrit dans le message de
news: 75845A1E-AC57-4747-A0C6-6235C1D46C66@microsoft.com...
Bonjour, c'est encore moi!
Comment lier un code VBA à une cellule de la feuille de calcul (si
c'est
possible) un peu comme on affecte une macro à un bouton?
Merci de votre aide
Re
le principe des modules feuille (de même pour le classeur Thisworkbook) est
de s'activer en fonction d'évenements déclencheurs
par exemple, on souhaite un rafraichissement automatique de tableaux croisés
située dans une feuille
et bien on utilisera, l'évenement activate pour mettre le code de
rafraichissement
sub worksheet_activate
....
si on souhaite qu'à chaque fois que l'on frappe quelque chose, cela
s'inscrive en majuscule, on utilisera l'évenement change
sub worksheet_change
etc...
il serait bon que nous puissions savoir ce que tu souhaites faire dans ta
feuille pour pouvoir te renseigner de manière plus précise.
Ne voit pas là une indiscrétion de notre part, mais nos capacités en
divination sont parfois réduite...
;-)
a+
rural thierry
"Janet81" a écrit dans le message de
news:Voici la partie du message que je ne comprend pas, le reste marche jusqu'à
présent:
activate, close, selection _change,...Salut
c'est possible , en selectionnant la feuille dans la fenetre
projectVBA,dans l'éditeur VBE, puis choisir Worksheet à la place de Général dans la
grande fenêtre code, et l'évenement qui doit déclencher l'execution,
activate, close, selection _change,...
Reste à savoir ton besoin exact...
a+
rural thierry
"Janet81" a écrit dans le message de
news:Bonjour, c'est encore moi!
Comment lier un code VBA à une cellule de la feuille de calcul (si
c'estpossible) un peu comme on affecte une macro à un bouton?
Merci de votre aide
Voici le code (corrigez-le éventuellement) que j'ai envie d'affecter à la
cellule H10:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim RC As Integer
If RE > 0 And RF > 0 And RHAO > 0 Then
[H10] = [RC = RE + RF + RHAO]
ElseIf RE < 0 And RF > 0 And RHAO > 0 Then
[H10] = [RC = (RF + RHAO) - RE]
ElseIf RE < 0 And RF < 0 And RHAO < 0 Then
[H10] = [RC = -(RE + RF + RHAO)]
ElseIf RE < 0 And RF < 0 And RHAO > 0 Then
[H10] = [RC = RHAO - (RE + RF)]
ElseIf RF < 0 And RE > 0 And RHAO > 0 Then
[H10] = [RC = (RE + RHAO) - RF]
ElseIf RHAO < 0 And RE > 0 And RF > 0 Then
[H10] = [RC = (RE + RF) - RHAO]
ElseIf RHAO < 0 And RE > 0 And RF < 0 Then
[H10] = [RC = RE - (RHAO + RF)]
ElseIf RHAO < 0 And RE > 0 And RF > 0 Then
[H10] = [RC = RF - (RE + RHAO)]
End If
essai = RC
End Sub
Je tiens à préciser que je n'ai aucune notion en programmation et que
l'interface de VB me fait plutôt peur...
Merci
Voici le code (corrigez-le éventuellement) que j'ai envie d'affecter à la
cellule H10:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim RC As Integer
If RE > 0 And RF > 0 And RHAO > 0 Then
[H10] = [RC = RE + RF + RHAO]
ElseIf RE < 0 And RF > 0 And RHAO > 0 Then
[H10] = [RC = (RF + RHAO) - RE]
ElseIf RE < 0 And RF < 0 And RHAO < 0 Then
[H10] = [RC = -(RE + RF + RHAO)]
ElseIf RE < 0 And RF < 0 And RHAO > 0 Then
[H10] = [RC = RHAO - (RE + RF)]
ElseIf RF < 0 And RE > 0 And RHAO > 0 Then
[H10] = [RC = (RE + RHAO) - RF]
ElseIf RHAO < 0 And RE > 0 And RF > 0 Then
[H10] = [RC = (RE + RF) - RHAO]
ElseIf RHAO < 0 And RE > 0 And RF < 0 Then
[H10] = [RC = RE - (RHAO + RF)]
ElseIf RHAO < 0 And RE > 0 And RF > 0 Then
[H10] = [RC = RF - (RE + RHAO)]
End If
essai = RC
End Sub
Je tiens à préciser que je n'ai aucune notion en programmation et que
l'interface de VB me fait plutôt peur...
Merci
Voici le code (corrigez-le éventuellement) que j'ai envie d'affecter à la
cellule H10:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim RC As Integer
If RE > 0 And RF > 0 And RHAO > 0 Then
[H10] = [RC = RE + RF + RHAO]
ElseIf RE < 0 And RF > 0 And RHAO > 0 Then
[H10] = [RC = (RF + RHAO) - RE]
ElseIf RE < 0 And RF < 0 And RHAO < 0 Then
[H10] = [RC = -(RE + RF + RHAO)]
ElseIf RE < 0 And RF < 0 And RHAO > 0 Then
[H10] = [RC = RHAO - (RE + RF)]
ElseIf RF < 0 And RE > 0 And RHAO > 0 Then
[H10] = [RC = (RE + RHAO) - RF]
ElseIf RHAO < 0 And RE > 0 And RF > 0 Then
[H10] = [RC = (RE + RF) - RHAO]
ElseIf RHAO < 0 And RE > 0 And RF < 0 Then
[H10] = [RC = RE - (RHAO + RF)]
ElseIf RHAO < 0 And RE > 0 And RF > 0 Then
[H10] = [RC = RF - (RE + RHAO)]
End If
essai = RC
End Sub
Je tiens à préciser que je n'ai aucune notion en programmation et que
l'interface de VB me fait plutôt peur...
Merci
Salut Janet81,
1°) L'événement "Worksheet_SelectionChange" ne me paraît pas adapté à ce
que
tu veux faire. L'événement "Worksheet_Change" me paraitrait plus adéquate.
2°) Le choix d'une variable entière (Integer) ne parait pas davantage
judicieux. Tes résultats devront se situer entre -32768 ? et 32767 ?.
Utilise plutôt le format Double (qui autorise également les nombres à
virgule).
Dim RC As Double
3°) L'affectation d'une valeur à une cellule se fait par
Sheets("Feuil1").Range("H10") = MaValeur
4°) Excel ne peut pas deviner ce que tu appelles RE, RF, RHAO, tu devras
les
définir auparavant.
RE = sheets("Feuil1").Range("H1") 'Exemple
5°) Au vu de la nature des travaux demandé à Excel, il semblerait que
l'utilisation de Macro VBA ne soit pas indispensable. Excel sait faire
cela
avec des formules.
6°) Cependant, si tu tiens à faire du VBA, je suis pas sûr de comprendre
la
logique de tes formules. Exemple tu cites :
ElseIf RE < 0 And RF > 0 And RHAO > 0 Then
[H10] = [RC = (RF + RHAO) - RE]
Si RE est négatif, alors tu le soustraits aux deux autres pour obtenir ton
résultat comptable. Or soustraire un négatif revient revient à ajouter sa
valeur absolue.
Tu sites également :
If RE > 0 And RF > 0 And RHAO > 0 Then
[H10] = [RC = RE + RF + RHAO]
Si RE est positif, alors tu additionnes aussi sa valeur absolue.
Moralité : quelque soit le singe de RE, il faut additionner sa valeur
absolue.
Tu sites encore :
ElseIf RE < 0 And RF < 0 And RHAO < 0 Then
[H10] = [RC = -(RE + RF + RHAO)]
Si tout le monde est négatif, alors additionner tout le monde (résultat
négatif donc) et tu prends le signe contraire (soit la valeur absolue).
En conclusion, tu ne veux que des résultats positifs. Tes formules me
semble
un peu compliquées. Essaie plutôt un truc du genre :
RC = ABS(RE) + ABS(RF) + ABS(RHAO) ' Là, le résultat sera toujours positif
et ne tient pas compte des signes des différents membres.
Salutations,
Bruno
"Janet81" a écrit dans le message de
news:Voici le code (corrigez-le éventuellement) que j'ai envie d'affecter à
la
cellule H10:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim RC As Integer
If RE > 0 And RF > 0 And RHAO > 0 Then
[H10] = [RC = RE + RF + RHAO]
ElseIf RE < 0 And RF > 0 And RHAO > 0 Then
[H10] = [RC = (RF + RHAO) - RE]
ElseIf RE < 0 And RF < 0 And RHAO < 0 Then
[H10] = [RC = -(RE + RF + RHAO)]
ElseIf RE < 0 And RF < 0 And RHAO > 0 Then
[H10] = [RC = RHAO - (RE + RF)]
ElseIf RF < 0 And RE > 0 And RHAO > 0 Then
[H10] = [RC = (RE + RHAO) - RF]
ElseIf RHAO < 0 And RE > 0 And RF > 0 Then
[H10] = [RC = (RE + RF) - RHAO]
ElseIf RHAO < 0 And RE > 0 And RF < 0 Then
[H10] = [RC = RE - (RHAO + RF)]
ElseIf RHAO < 0 And RE > 0 And RF > 0 Then
[H10] = [RC = RF - (RE + RHAO)]
End If
essai = RC
End Sub
Je tiens à préciser que je n'ai aucune notion en programmation et que
l'interface de VB me fait plutôt peur...
Merci
Salut Janet81,
1°) L'événement "Worksheet_SelectionChange" ne me paraît pas adapté à ce
que
tu veux faire. L'événement "Worksheet_Change" me paraitrait plus adéquate.
2°) Le choix d'une variable entière (Integer) ne parait pas davantage
judicieux. Tes résultats devront se situer entre -32768 ? et 32767 ?.
Utilise plutôt le format Double (qui autorise également les nombres à
virgule).
Dim RC As Double
3°) L'affectation d'une valeur à une cellule se fait par
Sheets("Feuil1").Range("H10") = MaValeur
4°) Excel ne peut pas deviner ce que tu appelles RE, RF, RHAO, tu devras
les
définir auparavant.
RE = sheets("Feuil1").Range("H1") 'Exemple
5°) Au vu de la nature des travaux demandé à Excel, il semblerait que
l'utilisation de Macro VBA ne soit pas indispensable. Excel sait faire
cela
avec des formules.
6°) Cependant, si tu tiens à faire du VBA, je suis pas sûr de comprendre
la
logique de tes formules. Exemple tu cites :
ElseIf RE < 0 And RF > 0 And RHAO > 0 Then
[H10] = [RC = (RF + RHAO) - RE]
Si RE est négatif, alors tu le soustraits aux deux autres pour obtenir ton
résultat comptable. Or soustraire un négatif revient revient à ajouter sa
valeur absolue.
Tu sites également :
If RE > 0 And RF > 0 And RHAO > 0 Then
[H10] = [RC = RE + RF + RHAO]
Si RE est positif, alors tu additionnes aussi sa valeur absolue.
Moralité : quelque soit le singe de RE, il faut additionner sa valeur
absolue.
Tu sites encore :
ElseIf RE < 0 And RF < 0 And RHAO < 0 Then
[H10] = [RC = -(RE + RF + RHAO)]
Si tout le monde est négatif, alors additionner tout le monde (résultat
négatif donc) et tu prends le signe contraire (soit la valeur absolue).
En conclusion, tu ne veux que des résultats positifs. Tes formules me
semble
un peu compliquées. Essaie plutôt un truc du genre :
RC = ABS(RE) + ABS(RF) + ABS(RHAO) ' Là, le résultat sera toujours positif
et ne tient pas compte des signes des différents membres.
Salutations,
Bruno
"Janet81" <Janet81@discussions.microsoft.com> a écrit dans le message de
news: 7B2C7659-6B54-4E4F-B8A1-A84EA6CD7A4D@microsoft.com...
Voici le code (corrigez-le éventuellement) que j'ai envie d'affecter à
la
cellule H10:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim RC As Integer
If RE > 0 And RF > 0 And RHAO > 0 Then
[H10] = [RC = RE + RF + RHAO]
ElseIf RE < 0 And RF > 0 And RHAO > 0 Then
[H10] = [RC = (RF + RHAO) - RE]
ElseIf RE < 0 And RF < 0 And RHAO < 0 Then
[H10] = [RC = -(RE + RF + RHAO)]
ElseIf RE < 0 And RF < 0 And RHAO > 0 Then
[H10] = [RC = RHAO - (RE + RF)]
ElseIf RF < 0 And RE > 0 And RHAO > 0 Then
[H10] = [RC = (RE + RHAO) - RF]
ElseIf RHAO < 0 And RE > 0 And RF > 0 Then
[H10] = [RC = (RE + RF) - RHAO]
ElseIf RHAO < 0 And RE > 0 And RF < 0 Then
[H10] = [RC = RE - (RHAO + RF)]
ElseIf RHAO < 0 And RE > 0 And RF > 0 Then
[H10] = [RC = RF - (RE + RHAO)]
End If
essai = RC
End Sub
Je tiens à préciser que je n'ai aucune notion en programmation et que
l'interface de VB me fait plutôt peur...
Merci
Salut Janet81,
1°) L'événement "Worksheet_SelectionChange" ne me paraît pas adapté à ce
que
tu veux faire. L'événement "Worksheet_Change" me paraitrait plus adéquate.
2°) Le choix d'une variable entière (Integer) ne parait pas davantage
judicieux. Tes résultats devront se situer entre -32768 ? et 32767 ?.
Utilise plutôt le format Double (qui autorise également les nombres à
virgule).
Dim RC As Double
3°) L'affectation d'une valeur à une cellule se fait par
Sheets("Feuil1").Range("H10") = MaValeur
4°) Excel ne peut pas deviner ce que tu appelles RE, RF, RHAO, tu devras
les
définir auparavant.
RE = sheets("Feuil1").Range("H1") 'Exemple
5°) Au vu de la nature des travaux demandé à Excel, il semblerait que
l'utilisation de Macro VBA ne soit pas indispensable. Excel sait faire
cela
avec des formules.
6°) Cependant, si tu tiens à faire du VBA, je suis pas sûr de comprendre
la
logique de tes formules. Exemple tu cites :
ElseIf RE < 0 And RF > 0 And RHAO > 0 Then
[H10] = [RC = (RF + RHAO) - RE]
Si RE est négatif, alors tu le soustraits aux deux autres pour obtenir ton
résultat comptable. Or soustraire un négatif revient revient à ajouter sa
valeur absolue.
Tu sites également :
If RE > 0 And RF > 0 And RHAO > 0 Then
[H10] = [RC = RE + RF + RHAO]
Si RE est positif, alors tu additionnes aussi sa valeur absolue.
Moralité : quelque soit le singe de RE, il faut additionner sa valeur
absolue.
Tu sites encore :
ElseIf RE < 0 And RF < 0 And RHAO < 0 Then
[H10] = [RC = -(RE + RF + RHAO)]
Si tout le monde est négatif, alors additionner tout le monde (résultat
négatif donc) et tu prends le signe contraire (soit la valeur absolue).
En conclusion, tu ne veux que des résultats positifs. Tes formules me
semble
un peu compliquées. Essaie plutôt un truc du genre :
RC = ABS(RE) + ABS(RF) + ABS(RHAO) ' Là, le résultat sera toujours positif
et ne tient pas compte des signes des différents membres.
Salutations,
Bruno
"Janet81" a écrit dans le message de
news:Voici le code (corrigez-le éventuellement) que j'ai envie d'affecter à
la
cellule H10:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim RC As Integer
If RE > 0 And RF > 0 And RHAO > 0 Then
[H10] = [RC = RE + RF + RHAO]
ElseIf RE < 0 And RF > 0 And RHAO > 0 Then
[H10] = [RC = (RF + RHAO) - RE]
ElseIf RE < 0 And RF < 0 And RHAO < 0 Then
[H10] = [RC = -(RE + RF + RHAO)]
ElseIf RE < 0 And RF < 0 And RHAO > 0 Then
[H10] = [RC = RHAO - (RE + RF)]
ElseIf RF < 0 And RE > 0 And RHAO > 0 Then
[H10] = [RC = (RE + RHAO) - RF]
ElseIf RHAO < 0 And RE > 0 And RF > 0 Then
[H10] = [RC = (RE + RF) - RHAO]
ElseIf RHAO < 0 And RE > 0 And RF < 0 Then
[H10] = [RC = RE - (RHAO + RF)]
ElseIf RHAO < 0 And RE > 0 And RF > 0 Then
[H10] = [RC = RF - (RE + RHAO)]
End If
essai = RC
End Sub
Je tiens à préciser que je n'ai aucune notion en programmation et que
l'interface de VB me fait plutôt peur...
Merci
En tant que spectateur sur ce forum, je dis WOW a la reponse de Bruno.
Même si ce n'est pas moi qui a posé la question, merci, ça va certainement
me servir un jour!
Bonne journée à tous
Martin
"Bruno LOUIS" a écrit dans le message de
news: 41c0448a$0$10225$Salut Janet81,
1°) L'événement "Worksheet_SelectionChange" ne me paraît pas adapté à ce
quetu veux faire. L'événement "Worksheet_Change" me paraitrait plus adéquate.
2°) Le choix d'une variable entière (Integer) ne parait pas davantage
judicieux. Tes résultats devront se situer entre -32768 ? et 32767 ?.
Utilise plutôt le format Double (qui autorise également les nombres à
virgule).
Dim RC As Double
3°) L'affectation d'une valeur à une cellule se fait par
Sheets("Feuil1").Range("H10") = MaValeur
4°) Excel ne peut pas deviner ce que tu appelles RE, RF, RHAO, tu devras
lesdéfinir auparavant.
RE = sheets("Feuil1").Range("H1") 'Exemple
5°) Au vu de la nature des travaux demandé à Excel, il semblerait que
l'utilisation de Macro VBA ne soit pas indispensable. Excel sait faire
celaavec des formules.
6°) Cependant, si tu tiens à faire du VBA, je suis pas sûr de comprendre
lalogique de tes formules. Exemple tu cites :
ElseIf RE < 0 And RF > 0 And RHAO > 0 Then
[H10] = [RC = (RF + RHAO) - RE]
Si RE est négatif, alors tu le soustraits aux deux autres pour obtenir ton
résultat comptable. Or soustraire un négatif revient revient à ajouter sa
valeur absolue.
Tu sites également :
If RE > 0 And RF > 0 And RHAO > 0 Then
[H10] = [RC = RE + RF + RHAO]
Si RE est positif, alors tu additionnes aussi sa valeur absolue.
Moralité : quelque soit le singe de RE, il faut additionner sa valeur
absolue.
Tu sites encore :
ElseIf RE < 0 And RF < 0 And RHAO < 0 Then
[H10] = [RC = -(RE + RF + RHAO)]
Si tout le monde est négatif, alors additionner tout le monde (résultat
négatif donc) et tu prends le signe contraire (soit la valeur absolue).
En conclusion, tu ne veux que des résultats positifs. Tes formules me
sembleun peu compliquées. Essaie plutôt un truc du genre :
RC = ABS(RE) + ABS(RF) + ABS(RHAO) ' Là, le résultat sera toujours positif
et ne tient pas compte des signes des différents membres.
Salutations,
Bruno
"Janet81" a écrit dans le message de
news:Voici le code (corrigez-le éventuellement) que j'ai envie d'affecter à
lacellule H10:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim RC As Integer
If RE > 0 And RF > 0 And RHAO > 0 Then
[H10] = [RC = RE + RF + RHAO]
ElseIf RE < 0 And RF > 0 And RHAO > 0 Then
[H10] = [RC = (RF + RHAO) - RE]
ElseIf RE < 0 And RF < 0 And RHAO < 0 Then
[H10] = [RC = -(RE + RF + RHAO)]
ElseIf RE < 0 And RF < 0 And RHAO > 0 Then
[H10] = [RC = RHAO - (RE + RF)]
ElseIf RF < 0 And RE > 0 And RHAO > 0 Then
[H10] = [RC = (RE + RHAO) - RF]
ElseIf RHAO < 0 And RE > 0 And RF > 0 Then
[H10] = [RC = (RE + RF) - RHAO]
ElseIf RHAO < 0 And RE > 0 And RF < 0 Then
[H10] = [RC = RE - (RHAO + RF)]
ElseIf RHAO < 0 And RE > 0 And RF > 0 Then
[H10] = [RC = RF - (RE + RHAO)]
End If
essai = RC
End Sub
Je tiens à préciser que je n'ai aucune notion en programmation et que
l'interface de VB me fait plutôt peur...
Merci
En tant que spectateur sur ce forum, je dis WOW a la reponse de Bruno.
Même si ce n'est pas moi qui a posé la question, merci, ça va certainement
me servir un jour!
Bonne journée à tous
Martin
"Bruno LOUIS" <bruno@hamelin-lecardonnel.fr> a écrit dans le message de
news: 41c0448a$0$10225$8fcfb975@news.wanadoo.fr...
Salut Janet81,
1°) L'événement "Worksheet_SelectionChange" ne me paraît pas adapté à ce
que
tu veux faire. L'événement "Worksheet_Change" me paraitrait plus adéquate.
2°) Le choix d'une variable entière (Integer) ne parait pas davantage
judicieux. Tes résultats devront se situer entre -32768 ? et 32767 ?.
Utilise plutôt le format Double (qui autorise également les nombres à
virgule).
Dim RC As Double
3°) L'affectation d'une valeur à une cellule se fait par
Sheets("Feuil1").Range("H10") = MaValeur
4°) Excel ne peut pas deviner ce que tu appelles RE, RF, RHAO, tu devras
les
définir auparavant.
RE = sheets("Feuil1").Range("H1") 'Exemple
5°) Au vu de la nature des travaux demandé à Excel, il semblerait que
l'utilisation de Macro VBA ne soit pas indispensable. Excel sait faire
cela
avec des formules.
6°) Cependant, si tu tiens à faire du VBA, je suis pas sûr de comprendre
la
logique de tes formules. Exemple tu cites :
ElseIf RE < 0 And RF > 0 And RHAO > 0 Then
[H10] = [RC = (RF + RHAO) - RE]
Si RE est négatif, alors tu le soustraits aux deux autres pour obtenir ton
résultat comptable. Or soustraire un négatif revient revient à ajouter sa
valeur absolue.
Tu sites également :
If RE > 0 And RF > 0 And RHAO > 0 Then
[H10] = [RC = RE + RF + RHAO]
Si RE est positif, alors tu additionnes aussi sa valeur absolue.
Moralité : quelque soit le singe de RE, il faut additionner sa valeur
absolue.
Tu sites encore :
ElseIf RE < 0 And RF < 0 And RHAO < 0 Then
[H10] = [RC = -(RE + RF + RHAO)]
Si tout le monde est négatif, alors additionner tout le monde (résultat
négatif donc) et tu prends le signe contraire (soit la valeur absolue).
En conclusion, tu ne veux que des résultats positifs. Tes formules me
semble
un peu compliquées. Essaie plutôt un truc du genre :
RC = ABS(RE) + ABS(RF) + ABS(RHAO) ' Là, le résultat sera toujours positif
et ne tient pas compte des signes des différents membres.
Salutations,
Bruno
"Janet81" <Janet81@discussions.microsoft.com> a écrit dans le message de
news: 7B2C7659-6B54-4E4F-B8A1-A84EA6CD7A4D@microsoft.com...
Voici le code (corrigez-le éventuellement) que j'ai envie d'affecter à
la
cellule H10:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim RC As Integer
If RE > 0 And RF > 0 And RHAO > 0 Then
[H10] = [RC = RE + RF + RHAO]
ElseIf RE < 0 And RF > 0 And RHAO > 0 Then
[H10] = [RC = (RF + RHAO) - RE]
ElseIf RE < 0 And RF < 0 And RHAO < 0 Then
[H10] = [RC = -(RE + RF + RHAO)]
ElseIf RE < 0 And RF < 0 And RHAO > 0 Then
[H10] = [RC = RHAO - (RE + RF)]
ElseIf RF < 0 And RE > 0 And RHAO > 0 Then
[H10] = [RC = (RE + RHAO) - RF]
ElseIf RHAO < 0 And RE > 0 And RF > 0 Then
[H10] = [RC = (RE + RF) - RHAO]
ElseIf RHAO < 0 And RE > 0 And RF < 0 Then
[H10] = [RC = RE - (RHAO + RF)]
ElseIf RHAO < 0 And RE > 0 And RF > 0 Then
[H10] = [RC = RF - (RE + RHAO)]
End If
essai = RC
End Sub
Je tiens à préciser que je n'ai aucune notion en programmation et que
l'interface de VB me fait plutôt peur...
Merci
En tant que spectateur sur ce forum, je dis WOW a la reponse de Bruno.
Même si ce n'est pas moi qui a posé la question, merci, ça va certainement
me servir un jour!
Bonne journée à tous
Martin
"Bruno LOUIS" a écrit dans le message de
news: 41c0448a$0$10225$Salut Janet81,
1°) L'événement "Worksheet_SelectionChange" ne me paraît pas adapté à ce
quetu veux faire. L'événement "Worksheet_Change" me paraitrait plus adéquate.
2°) Le choix d'une variable entière (Integer) ne parait pas davantage
judicieux. Tes résultats devront se situer entre -32768 ? et 32767 ?.
Utilise plutôt le format Double (qui autorise également les nombres à
virgule).
Dim RC As Double
3°) L'affectation d'une valeur à une cellule se fait par
Sheets("Feuil1").Range("H10") = MaValeur
4°) Excel ne peut pas deviner ce que tu appelles RE, RF, RHAO, tu devras
lesdéfinir auparavant.
RE = sheets("Feuil1").Range("H1") 'Exemple
5°) Au vu de la nature des travaux demandé à Excel, il semblerait que
l'utilisation de Macro VBA ne soit pas indispensable. Excel sait faire
celaavec des formules.
6°) Cependant, si tu tiens à faire du VBA, je suis pas sûr de comprendre
lalogique de tes formules. Exemple tu cites :
ElseIf RE < 0 And RF > 0 And RHAO > 0 Then
[H10] = [RC = (RF + RHAO) - RE]
Si RE est négatif, alors tu le soustraits aux deux autres pour obtenir ton
résultat comptable. Or soustraire un négatif revient revient à ajouter sa
valeur absolue.
Tu sites également :
If RE > 0 And RF > 0 And RHAO > 0 Then
[H10] = [RC = RE + RF + RHAO]
Si RE est positif, alors tu additionnes aussi sa valeur absolue.
Moralité : quelque soit le singe de RE, il faut additionner sa valeur
absolue.
Tu sites encore :
ElseIf RE < 0 And RF < 0 And RHAO < 0 Then
[H10] = [RC = -(RE + RF + RHAO)]
Si tout le monde est négatif, alors additionner tout le monde (résultat
négatif donc) et tu prends le signe contraire (soit la valeur absolue).
En conclusion, tu ne veux que des résultats positifs. Tes formules me
sembleun peu compliquées. Essaie plutôt un truc du genre :
RC = ABS(RE) + ABS(RF) + ABS(RHAO) ' Là, le résultat sera toujours positif
et ne tient pas compte des signes des différents membres.
Salutations,
Bruno
"Janet81" a écrit dans le message de
news:Voici le code (corrigez-le éventuellement) que j'ai envie d'affecter à
lacellule H10:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim RC As Integer
If RE > 0 And RF > 0 And RHAO > 0 Then
[H10] = [RC = RE + RF + RHAO]
ElseIf RE < 0 And RF > 0 And RHAO > 0 Then
[H10] = [RC = (RF + RHAO) - RE]
ElseIf RE < 0 And RF < 0 And RHAO < 0 Then
[H10] = [RC = -(RE + RF + RHAO)]
ElseIf RE < 0 And RF < 0 And RHAO > 0 Then
[H10] = [RC = RHAO - (RE + RF)]
ElseIf RF < 0 And RE > 0 And RHAO > 0 Then
[H10] = [RC = (RE + RHAO) - RF]
ElseIf RHAO < 0 And RE > 0 And RF > 0 Then
[H10] = [RC = (RE + RF) - RHAO]
ElseIf RHAO < 0 And RE > 0 And RF < 0 Then
[H10] = [RC = RE - (RHAO + RF)]
ElseIf RHAO < 0 And RE > 0 And RF > 0 Then
[H10] = [RC = RF - (RE + RHAO)]
End If
essai = RC
End Sub
Je tiens à préciser que je n'ai aucune notion en programmation et que
l'interface de VB me fait plutôt peur...
Merci