Besoin d'aide sur un Macro dans Excel !!!!!
Résolu/Fermé
manutalontsi
Messages postés
27
Date d'inscription
lundi 11 août 2008
Statut
Membre
Dernière intervention
12 août 2009
-
5 janv. 2009 à 21:27
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 - 3 juin 2009 à 22:01
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 - 3 juin 2009 à 22:01
A voir également:
- Besoin d'aide sur un Macro dans Excel !!!!!
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Si et excel - Guide
- Calculer une moyenne sur excel - Guide
- Comment aller à la ligne sur excel - Guide
8 réponses
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 712
5 janv. 2009 à 22:02
5 janv. 2009 à 22:02
bonjour
Pour faire un graphique évolutif, il vaut mieux passer par des plages nommées avec la fonction DECALER surtout lorsque l'on ne maîtrise pas le VBA.
Le code sorti de l'enregistreur est "imbuvable" surtout si l'on n'enlève pas les déplacements et les "select" inutiles.
Pour faire un graphique évolutif, il vaut mieux passer par des plages nommées avec la fonction DECALER surtout lorsque l'on ne maîtrise pas le VBA.
Le code sorti de l'enregistreur est "imbuvable" surtout si l'on n'enlève pas les déplacements et les "select" inutiles.
manutalontsi
Messages postés
27
Date d'inscription
lundi 11 août 2008
Statut
Membre
Dernière intervention
12 août 2009
2
6 janv. 2009 à 01:11
6 janv. 2009 à 01:11
D'accord je te remercie , mais je ne crois pas que sa répond a ma question. Pcq le macro que j'ai fait en enregistrant fonctionne bien c juste le nombre de plage que la graphique retiens. EN fesant le meme test , en produisant un graphique on peux voir que sa fonctionne pas , ex
A B
Opérer presse 107,19%
Opérer presse 102,10%
Opérer presse 70,88%
Opérer presse 125,22%
Opérer presse 113,09%
Opérer presse 96,61%
Opérer presse 117,18%
Percer 100,00%
Percer 100,00%
Voila avec koi je fais mon graphique, si j'ai 25 opérations et je produit mon graphique tout es correcte (essaie le juste encopiant la derniere opération) Quand je fait mon graphique je sélectionne la colonne au complet pour qu'il prenne toute les donner qu'il trouve alors c'Est correcte, mais quand tu enleve des donner ou en rajoute , tu en as 25 ettu passe a 10 et bien il y a 15 case de libre.... C'est sa mon probleme! Es ce que sa vous éclaire un peux?
A B
Opérer presse 107,19%
Opérer presse 102,10%
Opérer presse 70,88%
Opérer presse 125,22%
Opérer presse 113,09%
Opérer presse 96,61%
Opérer presse 117,18%
Percer 100,00%
Percer 100,00%
Voila avec koi je fais mon graphique, si j'ai 25 opérations et je produit mon graphique tout es correcte (essaie le juste encopiant la derniere opération) Quand je fait mon graphique je sélectionne la colonne au complet pour qu'il prenne toute les donner qu'il trouve alors c'Est correcte, mais quand tu enleve des donner ou en rajoute , tu en as 25 ettu passe a 10 et bien il y a 15 case de libre.... C'est sa mon probleme! Es ce que sa vous éclaire un peux?
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 712
6 janv. 2009 à 10:05
6 janv. 2009 à 10:05
bonjour
quand tu enleve des donner ou en rajoute , tu en as 25 ettu passe a 10 et bien il y a 15 case de libre....
Si la taille de ton graphique est gérée par une formule nommée avec la fonction decaler tu n'as plus ce problème.
- nom : "ton nom"
- formule : =DECALER(B1;;;NBVAL(B:B);1)
Dans les séries de ton graphique tu utilises "ton nom" et le tour est joué.
Bien sûr tu peux avoir plusieurs séries et tu nommes les plages qu'il te faut.
essaie le juste encopiant la derniere opération
sauf que tu oublies que je n'ai pas ton classeur pour essayer et que je n'ai qu'une très vague idée de sa structure...
quand tu enleve des donner ou en rajoute , tu en as 25 ettu passe a 10 et bien il y a 15 case de libre....
Si la taille de ton graphique est gérée par une formule nommée avec la fonction decaler tu n'as plus ce problème.
- nom : "ton nom"
- formule : =DECALER(B1;;;NBVAL(B:B);1)
Dans les séries de ton graphique tu utilises "ton nom" et le tour est joué.
Bien sûr tu peux avoir plusieurs séries et tu nommes les plages qu'il te faut.
essaie le juste encopiant la derniere opération
sauf que tu oublies que je n'ai pas ton classeur pour essayer et que je n'ai qu'une très vague idée de sa structure...
manutalontsi
Messages postés
27
Date d'inscription
lundi 11 août 2008
Statut
Membre
Dernière intervention
12 août 2009
2
6 janv. 2009 à 12:53
6 janv. 2009 à 12:53
d'accord je vais essayer ça , mais mon questionnement es au je mes la formule? Quand je cré mon graphique j'utilise l'assistant graphique.... Alors la formule je la mes ou? Je fais essayer sa quand meme!!!!!
Merci bcp
Merci bcp
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 712
6 janv. 2009 à 16:02
6 janv. 2009 à 16:02
bonjour
Une explication officielle ici
Une explication officielle ici
Bonsoir gbinforme,Bremic83 a encore recours à toi pour le problème çi-dessous:
J'ai créé la macro "budget macro" pour l'appliquer sur le tableau qui suit.
Je voudrais pouvoir la faire agir sur n'importe laquelle des cellules de la colonne E,mais pas simultanément,
au coup par coup selon les règlements effectués chaque jour.
Telle quelle est ,actuellement,elle n'opère que sur la cellule E A,ce n'est qu 'un essai qui fonctionne très bien,
mais pour la suite,je suis dépassé,alors,si tu peux m'indiquer la marche à suivre....!
D'avance,Merçi,et
Aplus
Bremic83
'
' budget Macro
'
' Touche de raccourci du clavier: Ctrl+t
'
Range("E4").Select
ActiveCell.FormulaR1C1 = "=RC[-3]"
Range("B4").Select
With Selection.Font
.Color = -16776961
.TintAndShade = 0
End With
Range("D4").Select
ActiveCell.FormulaR1C1 = ""
Range("F9").Select
End Sub
A B C D E
JUILLET 2009
Dépenses
objet montant moyen A payer Payé ce Jour
A 32,00 pvt 32,00
B 84,00 pvt 84,00
C 50,00 pvt 50,00
D 58,00 pvt 58,00
E 52,44 pvt 52,44
F 136,08 pvt 136,08
G 15,00 pvt 15,00
H 920,00 CQ 920,00
I 60,00 CQ 60,00
J 100,00 pvt 100,00
K 0,00
L 0,00
M 0,00
N 0,00
O 0,00
P 0,00
Q 0,00
R 0,00
S 0,00
T 0,00
U 0,00
V 0,00
W 0,00
Y 0,00
Z 0,00
AA 0,00
AB 0,00
AC 0,00
AD 0,00
AE 0,00
AF 0,00
AG 0,00
AH 0,00
AI 0,00
AJ 0,00
AK 0,00
AL 0,00
AM 0,00
AN 0,00
AO 0,00
AP 0,00
AQ 0,00
AR 0,00
AS 0,00
AT 0,00
AU 0,00
AV 0,00
1507,52 1507,52 0,00
J'ai créé la macro "budget macro" pour l'appliquer sur le tableau qui suit.
Je voudrais pouvoir la faire agir sur n'importe laquelle des cellules de la colonne E,mais pas simultanément,
au coup par coup selon les règlements effectués chaque jour.
Telle quelle est ,actuellement,elle n'opère que sur la cellule E A,ce n'est qu 'un essai qui fonctionne très bien,
mais pour la suite,je suis dépassé,alors,si tu peux m'indiquer la marche à suivre....!
D'avance,Merçi,et
Aplus
Bremic83
'
' budget Macro
'
' Touche de raccourci du clavier: Ctrl+t
'
Range("E4").Select
ActiveCell.FormulaR1C1 = "=RC[-3]"
Range("B4").Select
With Selection.Font
.Color = -16776961
.TintAndShade = 0
End With
Range("D4").Select
ActiveCell.FormulaR1C1 = ""
Range("F9").Select
End Sub
A B C D E
JUILLET 2009
Dépenses
objet montant moyen A payer Payé ce Jour
A 32,00 pvt 32,00
B 84,00 pvt 84,00
C 50,00 pvt 50,00
D 58,00 pvt 58,00
E 52,44 pvt 52,44
F 136,08 pvt 136,08
G 15,00 pvt 15,00
H 920,00 CQ 920,00
I 60,00 CQ 60,00
J 100,00 pvt 100,00
K 0,00
L 0,00
M 0,00
N 0,00
O 0,00
P 0,00
Q 0,00
R 0,00
S 0,00
T 0,00
U 0,00
V 0,00
W 0,00
Y 0,00
Z 0,00
AA 0,00
AB 0,00
AC 0,00
AD 0,00
AE 0,00
AF 0,00
AG 0,00
AH 0,00
AI 0,00
AJ 0,00
AK 0,00
AL 0,00
AM 0,00
AN 0,00
AO 0,00
AP 0,00
AQ 0,00
AR 0,00
AS 0,00
AT 0,00
AU 0,00
AV 0,00
1507,52 1507,52 0,00
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 712
1 juin 2009 à 22:28
1 juin 2009 à 22:28
bonjour
Je ne sais pas si j'ai compris ton problème, mais je te propose ceci à mettre dans la feuille VBA concernée :
Lorsque tu saisis le moyen de paiement en colonne C, cela déclenche ta macro automatiquement sur la bonne ligne.
Si ce n'est pas cela, continue ta question.
Je ne sais pas si j'ai compris ton problème, mais je te propose ceci à mettre dans la feuille VBA concernée :
Private Sub Worksheet_Change(ByVal sel As Range) If Not Intersect(sel, [C:C]) Is Nothing Then Cells(sel.Row, "E").FormulaR1C1 = "=RC[-3]" With Cells(sel.Row, "B").Font .Color = -16776961 .TintAndShade = 0 End With Cells(sel.Row, "D").FormulaR1C1 = "" End If End Sub
Lorsque tu saisis le moyen de paiement en colonne C, cela déclenche ta macro automatiquement sur la bonne ligne.
Si ce n'est pas cela, continue ta question.
Bonjour gbinforme
Lorsque j'ai copié-collé mon tableau pour te le transmettre,il était très clair et lisible,je comprend ta
perplexité,lorsque je le vois ,tel que tu l'as reçu,sur le forum !
Je vais donc essayer de t'expliquer ce que je voudrais faire:
Comme tu l'as compris,le tableau est composé comme suit:
5 colonnes A B C D E
50 lignes 1 2 3 ...etc
colonne A : Nom du débiteur
" B : montant de la dépense (imprimé en bleu )
" C : moyen de paiement ( chèque,prélèvement,carte bancaire,etc...
" D : copie conforme de col. B imprimée en rouge
" E : copie,dans la même ligne, de la col. B,faite au jour le jour (explications çi-dessous )
Les colonnes B et D ,à l'enregistrement initial,sont identiques,B en bleu, D en rouge
A chaque règlement de dépense,la cellule concernée en D est vidée de son contenu,la cellule correspondante en B,conserve son contenu,mais passe en couleur rouge,et apparait sur la même ligne en colonne E.
Cette dernière colonne sert,au jour le jour,à enregistrer les paiements,et à les déduire du CCP ou du compte bancaire.(Cette dernière opération se fait en dehors de la macro),lorsque ces opérations sont faites,le contenu
des cellules col E sont effacés,et elle reste vide.
A la fin du mois,s'il n'y a pas de report sur le mois suivant,la colonne B est remplie,comme initialement,mais
en rouge,et les colonnes D et E sont vides
La commande sur le moyen de paiement,que tu m'as envoyée,ne me convient pas ,attendu que cette donnée
est enregistrée en même temps que la dépense,et qu'elle va faire agir la macro prématurément?
J'espère que mes explicationss sont suffisamment claires,et que tu pourras en tirer quelque chose.
A plus et merçi.
Bremic83
Lorsque j'ai copié-collé mon tableau pour te le transmettre,il était très clair et lisible,je comprend ta
perplexité,lorsque je le vois ,tel que tu l'as reçu,sur le forum !
Je vais donc essayer de t'expliquer ce que je voudrais faire:
Comme tu l'as compris,le tableau est composé comme suit:
5 colonnes A B C D E
50 lignes 1 2 3 ...etc
colonne A : Nom du débiteur
" B : montant de la dépense (imprimé en bleu )
" C : moyen de paiement ( chèque,prélèvement,carte bancaire,etc...
" D : copie conforme de col. B imprimée en rouge
" E : copie,dans la même ligne, de la col. B,faite au jour le jour (explications çi-dessous )
Les colonnes B et D ,à l'enregistrement initial,sont identiques,B en bleu, D en rouge
A chaque règlement de dépense,la cellule concernée en D est vidée de son contenu,la cellule correspondante en B,conserve son contenu,mais passe en couleur rouge,et apparait sur la même ligne en colonne E.
Cette dernière colonne sert,au jour le jour,à enregistrer les paiements,et à les déduire du CCP ou du compte bancaire.(Cette dernière opération se fait en dehors de la macro),lorsque ces opérations sont faites,le contenu
des cellules col E sont effacés,et elle reste vide.
A la fin du mois,s'il n'y a pas de report sur le mois suivant,la colonne B est remplie,comme initialement,mais
en rouge,et les colonnes D et E sont vides
La commande sur le moyen de paiement,que tu m'as envoyée,ne me convient pas ,attendu que cette donnée
est enregistrée en même temps que la dépense,et qu'elle va faire agir la macro prématurément?
J'espère que mes explicationss sont suffisamment claires,et que tu pourras en tirer quelque chose.
A plus et merçi.
Bremic83
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 712
2 juin 2009 à 23:51
2 juin 2009 à 23:51
bonjour
Effectivement j'avais extrapolé sur un événement improbable.
Si j'ai bien compris, tu veux lancer la macro avec ctrl + t lorsque tu as choisis la ligne concernée ?
Pour cela je te propose presque la même chose mais adaptée à ta procédure :
La macro agit sur la ligne sélectionnée (peu importe la ou les colonnes) et devrait faire ce que tu espères.
Effectivement j'avais extrapolé sur un événement improbable.
Si j'ai bien compris, tu veux lancer la macro avec ctrl + t lorsque tu as choisis la ligne concernée ?
Pour cela je te propose presque la même chose mais adaptée à ta procédure :
Public Sub paiement() Cells(ActiveCell.Row, "E").FormulaR1C1 = "=RC[-3]" With Cells(ActiveCell.Row, "B").Font .Color = -16776961 .TintAndShade = 0 End With Cells(ActiveCell.Row, "D").FormulaR1C1 = "" End Sub
La macro agit sur la ligne sélectionnée (peu importe la ou les colonnes) et devrait faire ce que tu espères.
Bonjour
Tout d'abord,merçi d'avoir réagi aussi vite.
J'ai enregistré ton code,et j'ai d'abord eu une fenêtre d'erreur,sur la dernière ligne,qui est passée en rouge,
et qui me disait: "Erreur de compilation End Sub attendu".
J'ai recopié toute cette ligne,et j'ai essayé d'exécuter la macro.
Nouvelle fenêtre d'erreur:"Impossible d'éxécuter le code en mode arrêt"
J'ai cliqué sur "aide"...,et je n'ai rien compris !!!
La ligne recopiée est toujours en rouge,bnien que le message d'erreur ne soit plus le même.
Le béotien que je suis t'appelle une nouvelle fois à son secours !
A plus
Bremic83
Tout d'abord,merçi d'avoir réagi aussi vite.
J'ai enregistré ton code,et j'ai d'abord eu une fenêtre d'erreur,sur la dernière ligne,qui est passée en rouge,
et qui me disait: "Erreur de compilation End Sub attendu".
J'ai recopié toute cette ligne,et j'ai essayé d'exécuter la macro.
Nouvelle fenêtre d'erreur:"Impossible d'éxécuter le code en mode arrêt"
J'ai cliqué sur "aide"...,et je n'ai rien compris !!!
La ligne recopiée est toujours en rouge,bnien que le message d'erreur ne soit plus le même.
Le béotien que je suis t'appelle une nouvelle fois à son secours !
A plus
Bremic83
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 712
3 juin 2009 à 22:01
3 juin 2009 à 22:01
bonjour
"End Sub" est bien dans le code fourni et c'est sans doute une erreur dans le copier/coller qui en est la cause ou bien tu as collé la macro à l'intérieur de la tienne.
Dans ta feuille concernée tu peux aussi essayer la macro suivante : il te suffit de double cliquer sur la ligne concernée par le paiement pour qu'elle s'exécute (mode d'emploi éventuel).
"End Sub" est bien dans le code fourni et c'est sans doute une erreur dans le copier/coller qui en est la cause ou bien tu as collé la macro à l'intérieur de la tienne.
Dans ta feuille concernée tu peux aussi essayer la macro suivante : il te suffit de double cliquer sur la ligne concernée par le paiement pour qu'elle s'exécute (mode d'emploi éventuel).
Private Sub Worksheet_BeforeDoubleClick(ByVal sel As Range, Cancel As Boolean) Cancel = True Cells(sel.Row, "E").FormulaR1C1 = "=RC[-3]" With Cells(sel.Row, "B").Font .Color = -16776961 .TintAndShade = 0 End With Cells(sel.Row, "D").FormulaR1C1 = "" End Sub