bonjour
j'utilise la ligne suivante dans ma sub:
....
....
ActiveSheet.Cells(ligne, colonne).FormulaLocal = _
"=(" & ActiveSheet.Cells(ligne, colonne).Value & _
"*" & ValeurNational & ") / " & ValeurPremiereLigne
End If
Next ligne
Next colonne
'on va tout multiplier par 100 pour enlever les %
'ajout du multiplicateur
ActiveCell.Offset(0, 1).Select
Do While Not IsEmpty(ActiveCell)
ActiveCell.Offset(0, 1).Select
Loop
ActiveCell.Value = 100
Set tbl = ActiveCell
ActiveCell.Select
Selection.Copy
Range(Cells(PremiereLigne, 2), Cells(DerniereLigne,
DerniereColonne).Offset(0, 1)).Select
'Range(DerniereLigne, DerniereColonne).Offset(0, 1).Activate
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlMultiply, _
SkipBlanks:úlse, Transpose:úlse
Application.CutCopyMode = False
Selection.NumberFormat = "0"
tbl.Value = ""
dans mon fichier excel j'obtient par exemple 2 aulieu de 154 et dans ma
cellule j'ai pourtant la formule suvante:
=((16991*1,54314387349689) / 16991)*100
Comment faire?
merci
ma version:excel2003 / win X¨P
bonjour
j'utilise la ligne suivante dans ma sub:
....
....
ActiveSheet.Cells(ligne, colonne).FormulaLocal = _
"=(" & ActiveSheet.Cells(ligne, colonne).Value & _
"*" & ValeurNational & ") / " & ValeurPremiereLigne
End If
Next ligne
Next colonne
'on va tout multiplier par 100 pour enlever les %
'ajout du multiplicateur
ActiveCell.Offset(0, 1).Select
Do While Not IsEmpty(ActiveCell)
ActiveCell.Offset(0, 1).Select
Loop
ActiveCell.Value = 100
Set tbl = ActiveCell
ActiveCell.Select
Selection.Copy
Range(Cells(PremiereLigne, 2), Cells(DerniereLigne,
DerniereColonne).Offset(0, 1)).Select
'Range(DerniereLigne, DerniereColonne).Offset(0, 1).Activate
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlMultiply, _
SkipBlanks:úlse, Transpose:úlse
Application.CutCopyMode = False
Selection.NumberFormat = "0"
tbl.Value = ""
dans mon fichier excel j'obtient par exemple 2 aulieu de 154 et dans ma
cellule j'ai pourtant la formule suvante:
=((16991*1,54314387349689) / 16991)*100
Comment faire?
merci
ma version:excel2003 / win X¨P
bonjour
j'utilise la ligne suivante dans ma sub:
....
....
ActiveSheet.Cells(ligne, colonne).FormulaLocal = _
"=(" & ActiveSheet.Cells(ligne, colonne).Value & _
"*" & ValeurNational & ") / " & ValeurPremiereLigne
End If
Next ligne
Next colonne
'on va tout multiplier par 100 pour enlever les %
'ajout du multiplicateur
ActiveCell.Offset(0, 1).Select
Do While Not IsEmpty(ActiveCell)
ActiveCell.Offset(0, 1).Select
Loop
ActiveCell.Value = 100
Set tbl = ActiveCell
ActiveCell.Select
Selection.Copy
Range(Cells(PremiereLigne, 2), Cells(DerniereLigne,
DerniereColonne).Offset(0, 1)).Select
'Range(DerniereLigne, DerniereColonne).Offset(0, 1).Activate
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlMultiply, _
SkipBlanks:úlse, Transpose:úlse
Application.CutCopyMode = False
Selection.NumberFormat = "0"
tbl.Value = ""
dans mon fichier excel j'obtient par exemple 2 aulieu de 154 et dans ma
cellule j'ai pourtant la formule suvante:
=((16991*1,54314387349689) / 16991)*100
Comment faire?
merci
ma version:excel2003 / win X¨P
bonjour
j'utilise la ligne suivante dans ma sub:
.....
.....
ActiveSheet.Cells(ligne, colonne).FormulaLocal = _
"=(" & ActiveSheet.Cells(ligne, colonne).Value & _
"*" & ValeurNational & ") / " & ValeurPremiereLigne
End If
Next ligne
Next colonne
'on va tout multiplier par 100 pour enlever les %
'ajout du multiplicateur
ActiveCell.Offset(0, 1).Select
Do While Not IsEmpty(ActiveCell)
ActiveCell.Offset(0, 1).Select
Loop
ActiveCell.Value = 100
Set tbl = ActiveCell
ActiveCell.Select
Selection.Copy
Range(Cells(PremiereLigne, 2), Cells(DerniereLigne,
DerniereColonne).Offset(0, 1)).Select
'Range(DerniereLigne, DerniereColonne).Offset(0, 1).Activate
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlMultiply, _
SkipBlanks:úlse, Transpose:úlse
Application.CutCopyMode = False
Selection.NumberFormat = "0"
tbl.Value = ""
dans mon fichier excel j'obtient par exemple 2 aulieu de 154 et dans ma
cellule j'ai pourtant la formule suvante:
=((16991*1,54314387349689) / 16991)*100
Comment faire?
merci
ma version:excel2003 / win X¨P
bonjour
j'utilise la ligne suivante dans ma sub:
.....
.....
ActiveSheet.Cells(ligne, colonne).FormulaLocal = _
"=(" & ActiveSheet.Cells(ligne, colonne).Value & _
"*" & ValeurNational & ") / " & ValeurPremiereLigne
End If
Next ligne
Next colonne
'on va tout multiplier par 100 pour enlever les %
'ajout du multiplicateur
ActiveCell.Offset(0, 1).Select
Do While Not IsEmpty(ActiveCell)
ActiveCell.Offset(0, 1).Select
Loop
ActiveCell.Value = 100
Set tbl = ActiveCell
ActiveCell.Select
Selection.Copy
Range(Cells(PremiereLigne, 2), Cells(DerniereLigne,
DerniereColonne).Offset(0, 1)).Select
'Range(DerniereLigne, DerniereColonne).Offset(0, 1).Activate
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlMultiply, _
SkipBlanks:úlse, Transpose:úlse
Application.CutCopyMode = False
Selection.NumberFormat = "0"
tbl.Value = ""
dans mon fichier excel j'obtient par exemple 2 aulieu de 154 et dans ma
cellule j'ai pourtant la formule suvante:
=((16991*1,54314387349689) / 16991)*100
Comment faire?
merci
ma version:excel2003 / win X¨P
bonjour
j'utilise la ligne suivante dans ma sub:
.....
.....
ActiveSheet.Cells(ligne, colonne).FormulaLocal = _
"=(" & ActiveSheet.Cells(ligne, colonne).Value & _
"*" & ValeurNational & ") / " & ValeurPremiereLigne
End If
Next ligne
Next colonne
'on va tout multiplier par 100 pour enlever les %
'ajout du multiplicateur
ActiveCell.Offset(0, 1).Select
Do While Not IsEmpty(ActiveCell)
ActiveCell.Offset(0, 1).Select
Loop
ActiveCell.Value = 100
Set tbl = ActiveCell
ActiveCell.Select
Selection.Copy
Range(Cells(PremiereLigne, 2), Cells(DerniereLigne,
DerniereColonne).Offset(0, 1)).Select
'Range(DerniereLigne, DerniereColonne).Offset(0, 1).Activate
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlMultiply, _
SkipBlanks:úlse, Transpose:úlse
Application.CutCopyMode = False
Selection.NumberFormat = "0"
tbl.Value = ""
dans mon fichier excel j'obtient par exemple 2 aulieu de 154 et dans ma
cellule j'ai pourtant la formule suvante:
=((16991*1,54314387349689) / 16991)*100
Comment faire?
merci
ma version:excel2003 / win X¨P
Bonsoir,
Je n'arrive pas à reproduire ton problème, mais ça semble à première vue
être un
problème d'affichage puisque les résultats semblent être ceux que tu
attends (ta
formule étant correcte). Essaye dans un premier temps de laisser le format
standard. Si tu n'as besoin que des parties entières des résultats, tu
peux
aussi modifier légèrement ta formule :
ActiveSheet.Cells(ligne, colonne).FormulaLocal = _
"=ENT(" & ActiveSheet.Cells(ligne, colonne).Value & _
"*" & ValeurNational & ") / " & ValeurPremiereLigne & ")"
FS
---
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !bonjour
j'utilise la ligne suivante dans ma sub:
.....
.....
ActiveSheet.Cells(ligne, colonne).FormulaLocal = _
"=(" & ActiveSheet.Cells(ligne, colonne).Value & _
"*" & ValeurNational & ") / " & ValeurPremiereLigne
End If
Next ligne
Next colonne
'on va tout multiplier par 100 pour enlever les %
'ajout du multiplicateur
ActiveCell.Offset(0, 1).Select
Do While Not IsEmpty(ActiveCell)
ActiveCell.Offset(0, 1).Select
Loop
ActiveCell.Value = 100
Set tbl = ActiveCell
ActiveCell.Select
Selection.Copy
Range(Cells(PremiereLigne, 2), Cells(DerniereLigne,
DerniereColonne).Offset(0, 1)).Select
'Range(DerniereLigne, DerniereColonne).Offset(0, 1).Activate
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlMultiply, _
SkipBlanks:úlse, Transpose:úlse
Application.CutCopyMode = False
Selection.NumberFormat = "0"
tbl.Value = ""
dans mon fichier excel j'obtient par exemple 2 aulieu de 154 et dans ma
cellule j'ai pourtant la formule suvante:
=((16991*1,54314387349689) / 16991)*100
Comment faire?
merci
ma version:excel2003 / win X¨P
Bonsoir,
Je n'arrive pas à reproduire ton problème, mais ça semble à première vue
être un
problème d'affichage puisque les résultats semblent être ceux que tu
attends (ta
formule étant correcte). Essaye dans un premier temps de laisser le format
standard. Si tu n'as besoin que des parties entières des résultats, tu
peux
aussi modifier légèrement ta formule :
ActiveSheet.Cells(ligne, colonne).FormulaLocal = _
"=ENT(" & ActiveSheet.Cells(ligne, colonne).Value & _
"*" & ValeurNational & ") / " & ValeurPremiereLigne & ")"
FS
---
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !
bonjour
j'utilise la ligne suivante dans ma sub:
.....
.....
ActiveSheet.Cells(ligne, colonne).FormulaLocal = _
"=(" & ActiveSheet.Cells(ligne, colonne).Value & _
"*" & ValeurNational & ") / " & ValeurPremiereLigne
End If
Next ligne
Next colonne
'on va tout multiplier par 100 pour enlever les %
'ajout du multiplicateur
ActiveCell.Offset(0, 1).Select
Do While Not IsEmpty(ActiveCell)
ActiveCell.Offset(0, 1).Select
Loop
ActiveCell.Value = 100
Set tbl = ActiveCell
ActiveCell.Select
Selection.Copy
Range(Cells(PremiereLigne, 2), Cells(DerniereLigne,
DerniereColonne).Offset(0, 1)).Select
'Range(DerniereLigne, DerniereColonne).Offset(0, 1).Activate
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlMultiply, _
SkipBlanks:úlse, Transpose:úlse
Application.CutCopyMode = False
Selection.NumberFormat = "0"
tbl.Value = ""
dans mon fichier excel j'obtient par exemple 2 aulieu de 154 et dans ma
cellule j'ai pourtant la formule suvante:
=((16991*1,54314387349689) / 16991)*100
Comment faire?
merci
ma version:excel2003 / win X¨P
Bonsoir,
Je n'arrive pas à reproduire ton problème, mais ça semble à première vue
être un
problème d'affichage puisque les résultats semblent être ceux que tu
attends (ta
formule étant correcte). Essaye dans un premier temps de laisser le format
standard. Si tu n'as besoin que des parties entières des résultats, tu
peux
aussi modifier légèrement ta formule :
ActiveSheet.Cells(ligne, colonne).FormulaLocal = _
"=ENT(" & ActiveSheet.Cells(ligne, colonne).Value & _
"*" & ValeurNational & ") / " & ValeurPremiereLigne & ")"
FS
---
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !bonjour
j'utilise la ligne suivante dans ma sub:
.....
.....
ActiveSheet.Cells(ligne, colonne).FormulaLocal = _
"=(" & ActiveSheet.Cells(ligne, colonne).Value & _
"*" & ValeurNational & ") / " & ValeurPremiereLigne
End If
Next ligne
Next colonne
'on va tout multiplier par 100 pour enlever les %
'ajout du multiplicateur
ActiveCell.Offset(0, 1).Select
Do While Not IsEmpty(ActiveCell)
ActiveCell.Offset(0, 1).Select
Loop
ActiveCell.Value = 100
Set tbl = ActiveCell
ActiveCell.Select
Selection.Copy
Range(Cells(PremiereLigne, 2), Cells(DerniereLigne,
DerniereColonne).Offset(0, 1)).Select
'Range(DerniereLigne, DerniereColonne).Offset(0, 1).Activate
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlMultiply, _
SkipBlanks:úlse, Transpose:úlse
Application.CutCopyMode = False
Selection.NumberFormat = "0"
tbl.Value = ""
dans mon fichier excel j'obtient par exemple 2 aulieu de 154 et dans ma
cellule j'ai pourtant la formule suvante:
=((16991*1,54314387349689) / 16991)*100
Comment faire?
merci
ma version:excel2003 / win X¨P
merci à tous pour votre aide
voici le code complet de ma procedure
Sub CasParticulier(sVar As String, FeuilDest As String)
Dim OA As Worksheet
Dim OD As Worksheet
Dim ONat As Worksheet
Dim sChamp As String
Application.ScreenUpdating = False
Set OA = ThisWorkbook.ActiveSheet 'la feuille tcd en cours
Set OD = ThisWorkbook.Sheets(FeuilDest)
Set ONat = ThisWorkbook.Sheets("National")
sChamp = "'" & sVar & "'"
'on efface les données de la feuille de cas particulier
OD.Select
Cells.Select
Selection.Delete
'selection et copie des donnees à traiter
OA.Select
Range("A11").Select
'ActiveSheet.PivotTables(1).PivotSelect "", xlDataOnly, True
Set tbl = ActiveCell.CurrentRegion
tbl.Offset(1, 0).Resize(tbl.Rows.Count - 1, _
tbl.Columns.Count).Select
Selection.Copy
OD.Select
ActiveSheet.Paste
'selection de la 1ère case vide a droite
Range("A1").Select
ActiveCell.Offset(0, 1).Select
Do While Not IsEmpty(ActiveCell)
ActiveCell.Offset(0, 1).Select
Loop
'selection et copie des données nationales correspondantes
ONat.Select
ActiveSheet.PivotTables(1).PivotSelect _
sChamp, xlDataAndLabel, True
Selection.Copy
OD.Select
ActiveSheet.Paste
'***************
'recopie du tableau
Range("A1").Select
ActiveCell.CurrentRegion.Select
Selection.Copy
ActiveCell.Offset(1, 0).Select
Do While Not IsEmpty(ActiveCell)
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell.Offset(2, 0).Select
ActiveSheet.Paste
Application.CutCopyMode = False
Set tbl = ActiveCell.CurrentRegion
tbl.Select
PremiereColonne = 2
DerniereColonne = tbl.Columns.Count - 1
ColonneNational = tbl.Columns.Count
PremiereLigne = ActiveCell.Row + 1
DerniereLigne = tbl.Rows.Count + PremiereLigne - 2
For colonne = PremiereColonne To DerniereColonne
ValeurPremiereLigne = ""
For ligne = PremiereLigne To DerniereLigne
If ActiveSheet.Cells(ligne, colonne).Value <> "" Then
If ValeurPremiereLigne = "" Then
ValeurPremiereLigne = ActiveSheet.Cells(ligne, colonne).Value
ValeurNational = ActiveSheet.Cells(ligne, ColonneNational).Value
End If
ActiveSheet.Cells(ligne, colonne).Formula = _
"=(" & ActiveSheet.Cells(ligne, colonne).Value & _
"*" & ValeurNational & ") / " & ValeurPremiereLigne
End If
Next ligne
Next colonne
'on va tout multiplier par 100 pour enlever les %
'ajout du multiplicateur
ActiveCell.Offset(0, 1).Select
Do While Not IsEmpty(ActiveCell)
ActiveCell.Offset(0, 1).Select
Loop
ActiveCell.Value = 100
Set tbl = ActiveCell
ActiveCell.Select
Selection.Copy
Range(Cells(PremiereLigne, 2), Cells(DerniereLigne,
DerniereColonne).Offset(0, 1)).Select
'Range(DerniereLigne, DerniereColonne).Offset(0, 1).Activate
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlMultiply, _
SkipBlanks:úlse, Transpose:úlse
Application.CutCopyMode = False
Selection.NumberFormat = "0"
tbl.Value = ""
Selection.NumberFormat = "General"
ActiveSheet.Range("A1").Select
Application.ScreenUpdating = True
End Sub
Pour rappel:
apres avoir recopié le 2ème tableau, quand je clique sur une cellule je vois
la bonne formule mais pas le bon résultat: la multiplication par 100 n'est
pas éffectuée. par contre si quand je clique sur une cellule j'appuie sur
entrée dans la barre de formule j'obtient le bon résultat.
Merci
"Frédéric Sigonneau" a écrit dans le
message de news:Bonsoir,
Je n'arrive pas à reproduire ton problème, mais ça semble à première vue
être unproblème d'affichage puisque les résultats semblent être ceux que tu
attends (taformule étant correcte). Essaye dans un premier temps de laisser le format
standard. Si tu n'as besoin que des parties entières des résultats, tu
peuxaussi modifier légèrement ta formule :
ActiveSheet.Cells(ligne, colonne).FormulaLocal = _
"=ENT(" & ActiveSheet.Cells(ligne, colonne).Value & _
"*" & ValeurNational & ") / " & ValeurPremiereLigne & ")"
FS
---
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !bonjour
j'utilise la ligne suivante dans ma sub:
.....
.....
ActiveSheet.Cells(ligne, colonne).FormulaLocal = _
"=(" & ActiveSheet.Cells(ligne, colonne).Value & _
"*" & ValeurNational & ") / " & ValeurPremiereLigne
End If
Next ligne
Next colonne
'on va tout multiplier par 100 pour enlever les %
'ajout du multiplicateur
ActiveCell.Offset(0, 1).Select
Do While Not IsEmpty(ActiveCell)
ActiveCell.Offset(0, 1).Select
Loop
ActiveCell.Value = 100
Set tbl = ActiveCell
ActiveCell.Select
Selection.Copy
Range(Cells(PremiereLigne, 2), Cells(DerniereLigne,
DerniereColonne).Offset(0, 1)).Select
'Range(DerniereLigne, DerniereColonne).Offset(0, 1).Activate
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlMultiply, _
SkipBlanks:úlse, Transpose:úlse
Application.CutCopyMode = False
Selection.NumberFormat = "0"
tbl.Value = ""
dans mon fichier excel j'obtient par exemple 2 aulieu de 154 et dans ma
cellule j'ai pourtant la formule suvante:
=((16991*1,54314387349689) / 16991)*100
Comment faire?
merci
ma version:excel2003 / win X¨P
merci à tous pour votre aide
voici le code complet de ma procedure
Sub CasParticulier(sVar As String, FeuilDest As String)
Dim OA As Worksheet
Dim OD As Worksheet
Dim ONat As Worksheet
Dim sChamp As String
Application.ScreenUpdating = False
Set OA = ThisWorkbook.ActiveSheet 'la feuille tcd en cours
Set OD = ThisWorkbook.Sheets(FeuilDest)
Set ONat = ThisWorkbook.Sheets("National")
sChamp = "'" & sVar & "'"
'on efface les données de la feuille de cas particulier
OD.Select
Cells.Select
Selection.Delete
'selection et copie des donnees à traiter
OA.Select
Range("A11").Select
'ActiveSheet.PivotTables(1).PivotSelect "", xlDataOnly, True
Set tbl = ActiveCell.CurrentRegion
tbl.Offset(1, 0).Resize(tbl.Rows.Count - 1, _
tbl.Columns.Count).Select
Selection.Copy
OD.Select
ActiveSheet.Paste
'selection de la 1ère case vide a droite
Range("A1").Select
ActiveCell.Offset(0, 1).Select
Do While Not IsEmpty(ActiveCell)
ActiveCell.Offset(0, 1).Select
Loop
'selection et copie des données nationales correspondantes
ONat.Select
ActiveSheet.PivotTables(1).PivotSelect _
sChamp, xlDataAndLabel, True
Selection.Copy
OD.Select
ActiveSheet.Paste
'***************
'recopie du tableau
Range("A1").Select
ActiveCell.CurrentRegion.Select
Selection.Copy
ActiveCell.Offset(1, 0).Select
Do While Not IsEmpty(ActiveCell)
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell.Offset(2, 0).Select
ActiveSheet.Paste
Application.CutCopyMode = False
Set tbl = ActiveCell.CurrentRegion
tbl.Select
PremiereColonne = 2
DerniereColonne = tbl.Columns.Count - 1
ColonneNational = tbl.Columns.Count
PremiereLigne = ActiveCell.Row + 1
DerniereLigne = tbl.Rows.Count + PremiereLigne - 2
For colonne = PremiereColonne To DerniereColonne
ValeurPremiereLigne = ""
For ligne = PremiereLigne To DerniereLigne
If ActiveSheet.Cells(ligne, colonne).Value <> "" Then
If ValeurPremiereLigne = "" Then
ValeurPremiereLigne = ActiveSheet.Cells(ligne, colonne).Value
ValeurNational = ActiveSheet.Cells(ligne, ColonneNational).Value
End If
ActiveSheet.Cells(ligne, colonne).Formula = _
"=(" & ActiveSheet.Cells(ligne, colonne).Value & _
"*" & ValeurNational & ") / " & ValeurPremiereLigne
End If
Next ligne
Next colonne
'on va tout multiplier par 100 pour enlever les %
'ajout du multiplicateur
ActiveCell.Offset(0, 1).Select
Do While Not IsEmpty(ActiveCell)
ActiveCell.Offset(0, 1).Select
Loop
ActiveCell.Value = 100
Set tbl = ActiveCell
ActiveCell.Select
Selection.Copy
Range(Cells(PremiereLigne, 2), Cells(DerniereLigne,
DerniereColonne).Offset(0, 1)).Select
'Range(DerniereLigne, DerniereColonne).Offset(0, 1).Activate
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlMultiply, _
SkipBlanks:úlse, Transpose:úlse
Application.CutCopyMode = False
Selection.NumberFormat = "0"
tbl.Value = ""
Selection.NumberFormat = "General"
ActiveSheet.Range("A1").Select
Application.ScreenUpdating = True
End Sub
Pour rappel:
apres avoir recopié le 2ème tableau, quand je clique sur une cellule je vois
la bonne formule mais pas le bon résultat: la multiplication par 100 n'est
pas éffectuée. par contre si quand je clique sur une cellule j'appuie sur
entrée dans la barre de formule j'obtient le bon résultat.
Merci
"Frédéric Sigonneau" <frederic.sigonneau@ouanadou.fr> a écrit dans le
message de news: ehEXjEdQEHA.2468@tk2msftngp13.phx.gbl...
Bonsoir,
Je n'arrive pas à reproduire ton problème, mais ça semble à première vue
être un
problème d'affichage puisque les résultats semblent être ceux que tu
attends (ta
formule étant correcte). Essaye dans un premier temps de laisser le format
standard. Si tu n'as besoin que des parties entières des résultats, tu
peux
aussi modifier légèrement ta formule :
ActiveSheet.Cells(ligne, colonne).FormulaLocal = _
"=ENT(" & ActiveSheet.Cells(ligne, colonne).Value & _
"*" & ValeurNational & ") / " & ValeurPremiereLigne & ")"
FS
---
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !
bonjour
j'utilise la ligne suivante dans ma sub:
.....
.....
ActiveSheet.Cells(ligne, colonne).FormulaLocal = _
"=(" & ActiveSheet.Cells(ligne, colonne).Value & _
"*" & ValeurNational & ") / " & ValeurPremiereLigne
End If
Next ligne
Next colonne
'on va tout multiplier par 100 pour enlever les %
'ajout du multiplicateur
ActiveCell.Offset(0, 1).Select
Do While Not IsEmpty(ActiveCell)
ActiveCell.Offset(0, 1).Select
Loop
ActiveCell.Value = 100
Set tbl = ActiveCell
ActiveCell.Select
Selection.Copy
Range(Cells(PremiereLigne, 2), Cells(DerniereLigne,
DerniereColonne).Offset(0, 1)).Select
'Range(DerniereLigne, DerniereColonne).Offset(0, 1).Activate
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlMultiply, _
SkipBlanks:úlse, Transpose:úlse
Application.CutCopyMode = False
Selection.NumberFormat = "0"
tbl.Value = ""
dans mon fichier excel j'obtient par exemple 2 aulieu de 154 et dans ma
cellule j'ai pourtant la formule suvante:
=((16991*1,54314387349689) / 16991)*100
Comment faire?
merci
ma version:excel2003 / win X¨P
merci à tous pour votre aide
voici le code complet de ma procedure
Sub CasParticulier(sVar As String, FeuilDest As String)
Dim OA As Worksheet
Dim OD As Worksheet
Dim ONat As Worksheet
Dim sChamp As String
Application.ScreenUpdating = False
Set OA = ThisWorkbook.ActiveSheet 'la feuille tcd en cours
Set OD = ThisWorkbook.Sheets(FeuilDest)
Set ONat = ThisWorkbook.Sheets("National")
sChamp = "'" & sVar & "'"
'on efface les données de la feuille de cas particulier
OD.Select
Cells.Select
Selection.Delete
'selection et copie des donnees à traiter
OA.Select
Range("A11").Select
'ActiveSheet.PivotTables(1).PivotSelect "", xlDataOnly, True
Set tbl = ActiveCell.CurrentRegion
tbl.Offset(1, 0).Resize(tbl.Rows.Count - 1, _
tbl.Columns.Count).Select
Selection.Copy
OD.Select
ActiveSheet.Paste
'selection de la 1ère case vide a droite
Range("A1").Select
ActiveCell.Offset(0, 1).Select
Do While Not IsEmpty(ActiveCell)
ActiveCell.Offset(0, 1).Select
Loop
'selection et copie des données nationales correspondantes
ONat.Select
ActiveSheet.PivotTables(1).PivotSelect _
sChamp, xlDataAndLabel, True
Selection.Copy
OD.Select
ActiveSheet.Paste
'***************
'recopie du tableau
Range("A1").Select
ActiveCell.CurrentRegion.Select
Selection.Copy
ActiveCell.Offset(1, 0).Select
Do While Not IsEmpty(ActiveCell)
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell.Offset(2, 0).Select
ActiveSheet.Paste
Application.CutCopyMode = False
Set tbl = ActiveCell.CurrentRegion
tbl.Select
PremiereColonne = 2
DerniereColonne = tbl.Columns.Count - 1
ColonneNational = tbl.Columns.Count
PremiereLigne = ActiveCell.Row + 1
DerniereLigne = tbl.Rows.Count + PremiereLigne - 2
For colonne = PremiereColonne To DerniereColonne
ValeurPremiereLigne = ""
For ligne = PremiereLigne To DerniereLigne
If ActiveSheet.Cells(ligne, colonne).Value <> "" Then
If ValeurPremiereLigne = "" Then
ValeurPremiereLigne = ActiveSheet.Cells(ligne, colonne).Value
ValeurNational = ActiveSheet.Cells(ligne, ColonneNational).Value
End If
ActiveSheet.Cells(ligne, colonne).Formula = _
"=(" & ActiveSheet.Cells(ligne, colonne).Value & _
"*" & ValeurNational & ") / " & ValeurPremiereLigne
End If
Next ligne
Next colonne
'on va tout multiplier par 100 pour enlever les %
'ajout du multiplicateur
ActiveCell.Offset(0, 1).Select
Do While Not IsEmpty(ActiveCell)
ActiveCell.Offset(0, 1).Select
Loop
ActiveCell.Value = 100
Set tbl = ActiveCell
ActiveCell.Select
Selection.Copy
Range(Cells(PremiereLigne, 2), Cells(DerniereLigne,
DerniereColonne).Offset(0, 1)).Select
'Range(DerniereLigne, DerniereColonne).Offset(0, 1).Activate
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlMultiply, _
SkipBlanks:úlse, Transpose:úlse
Application.CutCopyMode = False
Selection.NumberFormat = "0"
tbl.Value = ""
Selection.NumberFormat = "General"
ActiveSheet.Range("A1").Select
Application.ScreenUpdating = True
End Sub
Pour rappel:
apres avoir recopié le 2ème tableau, quand je clique sur une cellule je vois
la bonne formule mais pas le bon résultat: la multiplication par 100 n'est
pas éffectuée. par contre si quand je clique sur une cellule j'appuie sur
entrée dans la barre de formule j'obtient le bon résultat.
Merci
"Frédéric Sigonneau" a écrit dans le
message de news:Bonsoir,
Je n'arrive pas à reproduire ton problème, mais ça semble à première vue
être unproblème d'affichage puisque les résultats semblent être ceux que tu
attends (taformule étant correcte). Essaye dans un premier temps de laisser le format
standard. Si tu n'as besoin que des parties entières des résultats, tu
peuxaussi modifier légèrement ta formule :
ActiveSheet.Cells(ligne, colonne).FormulaLocal = _
"=ENT(" & ActiveSheet.Cells(ligne, colonne).Value & _
"*" & ValeurNational & ") / " & ValeurPremiereLigne & ")"
FS
---
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !bonjour
j'utilise la ligne suivante dans ma sub:
.....
.....
ActiveSheet.Cells(ligne, colonne).FormulaLocal = _
"=(" & ActiveSheet.Cells(ligne, colonne).Value & _
"*" & ValeurNational & ") / " & ValeurPremiereLigne
End If
Next ligne
Next colonne
'on va tout multiplier par 100 pour enlever les %
'ajout du multiplicateur
ActiveCell.Offset(0, 1).Select
Do While Not IsEmpty(ActiveCell)
ActiveCell.Offset(0, 1).Select
Loop
ActiveCell.Value = 100
Set tbl = ActiveCell
ActiveCell.Select
Selection.Copy
Range(Cells(PremiereLigne, 2), Cells(DerniereLigne,
DerniereColonne).Offset(0, 1)).Select
'Range(DerniereLigne, DerniereColonne).Offset(0, 1).Activate
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlMultiply, _
SkipBlanks:úlse, Transpose:úlse
Application.CutCopyMode = False
Selection.NumberFormat = "0"
tbl.Value = ""
dans mon fichier excel j'obtient par exemple 2 aulieu de 154 et dans ma
cellule j'ai pourtant la formule suvante:
=((16991*1,54314387349689) / 16991)*100
Comment faire?
merci
ma version:excel2003 / win X¨P