Problème EXCEL VBA
Résolu
Dany Dan
Messages postés
7
Date d'inscription
Statut
Membre
Dernière intervention
-
Dany Dan Messages postés 7 Date d'inscription Statut Membre Dernière intervention -
Dany Dan Messages postés 7 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- Problème EXCEL VBA
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
- Excel compter cellule couleur sans vba - Guide
8 réponses
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 ...
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+
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
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
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..