Problème EXCEL VBA
Résolu/Fermé
Dany Dan
Messages postés
7
Date d'inscription
jeudi 14 mai 2009
Statut
Membre
Dernière intervention
26 mai 2009
-
19 mai 2009 à 11:03
Dany Dan Messages postés 7 Date d'inscription jeudi 14 mai 2009 Statut Membre Dernière intervention 26 mai 2009 - 25 mai 2009 à 17:12
Dany Dan Messages postés 7 Date d'inscription jeudi 14 mai 2009 Statut Membre Dernière intervention 26 mai 2009 - 25 mai 2009 à 17:12
A voir également:
- Problème EXCEL VBA
- Liste déroulante excel - Guide
- Formule excel - Guide
- Si et excel - Guide
- Aller à la ligne excel - Guide
- Mise en forme conditionnelle excel - Guide
8 réponses
pilas31
Messages postés
1825
Date d'inscription
vendredi 5 septembre 2008
Statut
Contributeur
Dernière intervention
24 avril 2020
643
19 mai 2009 à 18:00
19 mai 2009 à 18:00
Bonjour,
A priori il suffit de modifier le replace en mettant : Replacement:=""
A+
A priori il suffit de modifier le replace en mettant : Replacement:=""
A+
Dany Dan
Messages postés
7
Date d'inscription
jeudi 14 mai 2009
Statut
Membre
Dernière intervention
26 mai 2009
20 mai 2009 à 15:31
20 mai 2009 à 15:31
Bonjou pilas
Négatif, ca ne marche pas en ecrivant ainsi :
Sub Macro1()
Range ("DY:DY,DZ:DZ,EA:EA").Select
Range("DY1,DZ1,EA1").Activate
Selection.Replace What:="0", Replacement:="", LookAt:=xlWhole, _
SearchOrder:=xlByColumns, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
End Sub
J'ai essayer à travers les options qu'offre EXCEL mais impossible également ...
Négatif, ca ne marche pas en ecrivant ainsi :
Sub Macro1()
Range ("DY:DY,DZ:DZ,EA:EA").Select
Range("DY1,DZ1,EA1").Activate
Selection.Replace What:="0", Replacement:="", LookAt:=xlWhole, _
SearchOrder:=xlByColumns, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
End Sub
J'ai essayer à travers les options qu'offre EXCEL mais impossible également ...
pilas31
Messages postés
1825
Date d'inscription
vendredi 5 septembre 2008
Statut
Contributeur
Dernière intervention
24 avril 2020
643
20 mai 2009 à 15:41
20 mai 2009 à 15:41
Bonjour,
Je ne comprends pas, je fais le test chez moi et ça marche. Es-tu certain qu'il s'agit bien de 0 ou qu'il n'y a pas un formatage particulier ou bien encore qu'il n' y a pas une macro qui s'execute (du style Worksheet_Change) ?
Sinon, je n'ai pas d'idée..
EDIT : Si assure-toi qu'il ne s'agit pas du résultat d'un calcul qui donne 0 car alors il faut modifier la formule qui fait le calcul.
A+
Je ne comprends pas, je fais le test chez moi et ça marche. Es-tu certain qu'il s'agit bien de 0 ou qu'il n'y a pas un formatage particulier ou bien encore qu'il n' y a pas une macro qui s'execute (du style Worksheet_Change) ?
Sinon, je n'ai pas d'idée..
EDIT : Si assure-toi qu'il ne s'agit pas du résultat d'un calcul qui donne 0 car alors il faut modifier la formule qui fait le calcul.
A+
pilas31
Messages postés
1825
Date d'inscription
vendredi 5 septembre 2008
Statut
Contributeur
Dernière intervention
24 avril 2020
643
20 mai 2009 à 15:48
20 mai 2009 à 15:48
Oui bon désolé mais il suffisait que je lise mieux ton premier post !
Il s'agit du résultat d'un calcul donc même si tu mets "" par macro le calcul donne toujours 0.
Il faut agir en amont et modifier la formule de calcul...
A+
Il s'agit du résultat d'un calcul donc même si tu mets "" par macro le calcul donne toujours 0.
Il faut agir en amont et modifier la formule de calcul...
A+
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Dany Dan
Messages postés
7
Date d'inscription
jeudi 14 mai 2009
Statut
Membre
Dernière intervention
26 mai 2009
20 mai 2009 à 15:54
20 mai 2009 à 15:54
Les 0 correspondent aux résultats d'un calcul de type AF1 + AG1 + AH1 + AI1 + ... + ... etc
Les lignes sont au nombre de 36 maximum mais le nombre d'individus est variable selon les services (25 ... 18 ... 13 ...) c'est pourquoi il y a un certain nombre de zéro.
Par contre, oui il y a une macro qui est executée avant et dnt voici le code :
Sub Macro1()
Range("M:M,O:O,Q:Q,R:R,T:T,U:U,W:W,X:X,Z:Z,AA:AA,AC:AC,AD:AD,AF:AF,AG:AG,AI:AI,AJ:AJ,AL:AL,AM:AM,AO:AO,AP:AP,CA:CA,CK:CK,CL:CL,CY:CY,CZ:CZ,DI:DI,DR:DR,DS:DS,DT:DT").Select
Range("M1,O1,Q1,R1,T1,U1,W1,X1,Z1,AA1,AC1,AD1,AF1,AG1,AI1,AJ1,AL1,AM1,AO1,AP1,CA1,CK1,CL1,CY1,CZ1,DI1,DR1,DS1,DT1").Activate
Selection.Replace What:="9", Replacement:="0", LookAt:=xlWhole, _
SearchOrder:=xlByColumns, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Range("DY1").Select
ActiveWindow.SmallScroll ToRight:=8
Selection.NumberFormat = "0"
ActiveCell.FormulaR1C1 = "Calcul Barème TMS"
Columns("DY:DY").Select
Selection.ColumnWidth = 20.57
Range("DY2").Select
ActiveCell.FormulaR1C1 = _
"=SUM(RC[-112],RC[-111],RC[-110],RC[-109],RC[-108],RC[-107],RC[-106],RC[-105],RC[-104],RC[-103],RC[-102],RC[-101],RC[-100],RC[-99],RC[-98],RC[-97],RC[-96],RC[-95],RC[-94],RC[-93],RC[-92],RC[-91],RC[-90],RC[-89],RC[-88],RC[-87],RC[-86])"
Range("DY2").Select
Selection.AutoFill Destination:=Range("DY2:DY36"), Type:=xlFillDefault
Range("DY2:DY36").Select
Range("DZ1").Select
Selection.NumberFormat = "0"
ActiveCell.FormulaR1C1 = "Calcul Barème Stress"
Columns("DZ:DZ").Select
Selection.ColumnWidth = 20.57
Range("DZ2").Select
ActiveCell.FormulaR1C1 = _
"=SUM(RC[-87],RC[-86],RC[-85],RC[-84],RC[-83],RC[-82],RC[-81],RC[-80],RC[-79],RC[-78],RC[-77],RC[-76],RC[-75],RC[-74],RC[-73],RC[-72],RC[-71],RC[-70],RC[-69],RC[-68])"
Range("DZ2").Select
Selection.AutoFill Destination:=Range("DZ2:DZ36"), Type:=xlFillDefault
Range("DZ2:DZ36").Select
Range("EA1").Select
ActiveCell.FormulaR1C1 = "Facteurs Psychosociaux"
Columns("EA:EA").Select
Selection.ColumnWidth = 20.57
Range("EA2").Select
ActiveCell.FormulaR1C1 = _
"=SUM(RC[-68],RC[-67],RC[-66],RC[-65],RC[-64],RC[-63],RC[-62],RC[-61],RC[-60],RC[-59],RC[-58],RC[-57],RC[-56],RC[-55],RC[-54],RC[-53],RC[-52],RC[-51],RC[-50],RC[-49],RC[-48],RC[-47],RC[-46],RC[-45],RC[-44],RC[-43],RC[-42],RC[-41],RC[-40],RC[-39])"
Range("EA2").Select
Selection.AutoFill Destination:=Range("EA2:EA36"), Type:=xlFillDefault
Range("EA2:EA36").Select
End Sub
Par contre, je suis obligé d'utiliser la macro
N'existe t-il pas une solution pour pourvoir lancer la macro et faire en sorte que celle ci retire les 0 dans les colonnes spécifiés ?
Ou sinon un autre moyen que je ne connaitrais pas eventuellement ?
Merci d'avance
Les lignes sont au nombre de 36 maximum mais le nombre d'individus est variable selon les services (25 ... 18 ... 13 ...) c'est pourquoi il y a un certain nombre de zéro.
Par contre, oui il y a une macro qui est executée avant et dnt voici le code :
Sub Macro1()
Range("M:M,O:O,Q:Q,R:R,T:T,U:U,W:W,X:X,Z:Z,AA:AA,AC:AC,AD:AD,AF:AF,AG:AG,AI:AI,AJ:AJ,AL:AL,AM:AM,AO:AO,AP:AP,CA:CA,CK:CK,CL:CL,CY:CY,CZ:CZ,DI:DI,DR:DR,DS:DS,DT:DT").Select
Range("M1,O1,Q1,R1,T1,U1,W1,X1,Z1,AA1,AC1,AD1,AF1,AG1,AI1,AJ1,AL1,AM1,AO1,AP1,CA1,CK1,CL1,CY1,CZ1,DI1,DR1,DS1,DT1").Activate
Selection.Replace What:="9", Replacement:="0", LookAt:=xlWhole, _
SearchOrder:=xlByColumns, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Range("DY1").Select
ActiveWindow.SmallScroll ToRight:=8
Selection.NumberFormat = "0"
ActiveCell.FormulaR1C1 = "Calcul Barème TMS"
Columns("DY:DY").Select
Selection.ColumnWidth = 20.57
Range("DY2").Select
ActiveCell.FormulaR1C1 = _
"=SUM(RC[-112],RC[-111],RC[-110],RC[-109],RC[-108],RC[-107],RC[-106],RC[-105],RC[-104],RC[-103],RC[-102],RC[-101],RC[-100],RC[-99],RC[-98],RC[-97],RC[-96],RC[-95],RC[-94],RC[-93],RC[-92],RC[-91],RC[-90],RC[-89],RC[-88],RC[-87],RC[-86])"
Range("DY2").Select
Selection.AutoFill Destination:=Range("DY2:DY36"), Type:=xlFillDefault
Range("DY2:DY36").Select
Range("DZ1").Select
Selection.NumberFormat = "0"
ActiveCell.FormulaR1C1 = "Calcul Barème Stress"
Columns("DZ:DZ").Select
Selection.ColumnWidth = 20.57
Range("DZ2").Select
ActiveCell.FormulaR1C1 = _
"=SUM(RC[-87],RC[-86],RC[-85],RC[-84],RC[-83],RC[-82],RC[-81],RC[-80],RC[-79],RC[-78],RC[-77],RC[-76],RC[-75],RC[-74],RC[-73],RC[-72],RC[-71],RC[-70],RC[-69],RC[-68])"
Range("DZ2").Select
Selection.AutoFill Destination:=Range("DZ2:DZ36"), Type:=xlFillDefault
Range("DZ2:DZ36").Select
Range("EA1").Select
ActiveCell.FormulaR1C1 = "Facteurs Psychosociaux"
Columns("EA:EA").Select
Selection.ColumnWidth = 20.57
Range("EA2").Select
ActiveCell.FormulaR1C1 = _
"=SUM(RC[-68],RC[-67],RC[-66],RC[-65],RC[-64],RC[-63],RC[-62],RC[-61],RC[-60],RC[-59],RC[-58],RC[-57],RC[-56],RC[-55],RC[-54],RC[-53],RC[-52],RC[-51],RC[-50],RC[-49],RC[-48],RC[-47],RC[-46],RC[-45],RC[-44],RC[-43],RC[-42],RC[-41],RC[-40],RC[-39])"
Range("EA2").Select
Selection.AutoFill Destination:=Range("EA2:EA36"), Type:=xlFillDefault
Range("EA2:EA36").Select
End Sub
Par contre, je suis obligé d'utiliser la macro
N'existe t-il pas une solution pour pourvoir lancer la macro et faire en sorte que celle ci retire les 0 dans les colonnes spécifiés ?
Ou sinon un autre moyen que je ne connaitrais pas eventuellement ?
Merci d'avance
Dany Dan
Messages postés
7
Date d'inscription
jeudi 14 mai 2009
Statut
Membre
Dernière intervention
26 mai 2009
20 mai 2009 à 15:55
20 mai 2009 à 15:55
Ok pas vu le post precedent
Je vais voir ce que je peux faire en amont de mon calcul
Je vais voir ce que je peux faire en amont de mon calcul
pilas31
Messages postés
1825
Date d'inscription
vendredi 5 septembre 2008
Statut
Contributeur
Dernière intervention
24 avril 2020
643
20 mai 2009 à 16:16
20 mai 2009 à 16:16
Tu peux essayer alors de modifier la formule de la somme. Tu peux la simplifier puis inclure le test si c'est égal à 0 mettre "".
A priori cela donne cela :
1° somme : ActiveCell.FormulaR1C1 = "=IF(SUM(RC[-112]:RC[-86])=0,"""",SUM(RC[-112]:RC[-86]))"
2° somme : ActiveCell.FormulaR1C1 = "=IF(SUM(RC[-87]:RC[-68])=0,"""",SUM(RC[-87]:RC[-68]))"
3° somme : ActiveCell.FormulaR1C1 = "=IF(SUM(RC[-68]:RC[-39])=0,"""",SUM(RC[-68]:RC[-39]))"
Sauf erreur..
A priori cela donne cela :
1° somme : ActiveCell.FormulaR1C1 = "=IF(SUM(RC[-112]:RC[-86])=0,"""",SUM(RC[-112]:RC[-86]))"
2° somme : ActiveCell.FormulaR1C1 = "=IF(SUM(RC[-87]:RC[-68])=0,"""",SUM(RC[-87]:RC[-68]))"
3° somme : ActiveCell.FormulaR1C1 = "=IF(SUM(RC[-68]:RC[-39])=0,"""",SUM(RC[-68]:RC[-39]))"
Sauf erreur..
Dany Dan
Messages postés
7
Date d'inscription
jeudi 14 mai 2009
Statut
Membre
Dernière intervention
26 mai 2009
25 mai 2009 à 17:12
25 mai 2009 à 17:12
Bonjour pilas
Bon, en fait j'ai suivant ton post qui disant de chercher le problème en amont de la macro et au final c'est pas plus mal
J'ai rajoutéé du coup ceci à ma macro de départ : ActiveWindow.DisplayZeros=False
Voili voulou
En tout cas, merci du coup de main
Bonne continuation
Bon, en fait j'ai suivant ton post qui disant de chercher le problème en amont de la macro et au final c'est pas plus mal
J'ai rajoutéé du coup ceci à ma macro de départ : ActiveWindow.DisplayZeros=False
Voili voulou
En tout cas, merci du coup de main
Bonne continuation