Modif de format de cellule en VBA

Le
jpierrethillard
Bonjour,

Je lis une cellule format standart et je voudrai lui aplliquer aprs
copy le format 90
Voici la macro que j'utilise mais il y a un bug.
Sub synthse()
x = 19
For i = 1 To 12
Sheets(i).Range("f1").Copy Sheets("Synthese").Cells(4, 3 + i)
'format de la cellule (cells(4,3+i)) aprs copy
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 90
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = True
.ReadingOrder = xlContext
.MergeCells = False
Sheets(i).Range("c5:c64").Copy Sheets("Synthese").Cells(5, 3 + i)
Sheets(i).Range("g6:j41").Copy Sheets("Synthese").Cells(6, x)
Sheets(i).Range("g48:j54").Copy Sheets("Synthese").Cells(48, x)
x = x + 4
Next
End Sub

J'ai un blocage la ligne: .HorizontalAlignment = xlCenter

Merci pour votre aide
JP
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Fredo P.
Le #5333711
Il manque au minimum cela
With selection
'format de la cellule (cells(4,3+i)) après copy
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 90
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = True
.ReadingOrder = xlContext
.MergeCells = False
End With
Sheets(i).Range("c5:c64").Copy Sheets("Synthese").Cells(5, 3 + i)
Sheets(i).Range("g6:j41").Copy Sheets("Synthese").Cells(6, x)
Sheets(i).Range("g48:j54").Copy Sheets("Synthese").Cells(48, x)
x = x + 4
Next
End Sub

J'ai un blocage à la ligne: .HorizontalAlignment = xlCenter

Merci pour votre aide
JP
Brunos
Le #5333691
Bonjour JP
Je pense que tu as oublié un bloc with-end with.
Essaie:

Sub synthèse()
x = 19
For i = 1 To 12
Sheets(i).Range("f1").Copy Sheets("Synthese").Cells(4, 3 + i)

'format de la cellule (cells(4,3+i)) après copy
With Sheets("Synthese").Cells(4, 3 + i)
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 90
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = True
.ReadingOrder = xlContext
.MergeCells = Fals
End With

Sheets(i).Range("c5:c64").Copy Sheets("Synthese").Cells(5, 3 + i)
Sheets(i).Range("g6:j41").Copy Sheets("Synthese").Cells(6, x)
Sheets(i).Range("g48:j54").Copy Sheets("Synthese").Cells(48, x)
x = x + 4
Next
End Sub

Brunos


Bonjour,

Je lis une cellule format standart et je voudrai lui aplliquer après
copy le format à 90°
Voici la macro que j'utilise mais il y a un bug.
Sub synthèse()
x = 19
For i = 1 To 12
Sheets(i).Range("f1").Copy Sheets("Synthese").Cells(4, 3 + i)
'format de la cellule (cells(4,3+i)) après copy
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 90
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = True
.ReadingOrder = xlContext
.MergeCells = False
Sheets(i).Range("c5:c64").Copy Sheets("Synthese").Cells(5, 3 + i)
Sheets(i).Range("g6:j41").Copy Sheets("Synthese").Cells(6, x)
Sheets(i).Range("g48:j54").Copy Sheets("Synthese").Cells(48, x)
x = x + 4
Next
End Sub

J'ai un blocage à la ligne: .HorizontalAlignment = xlCenter

Merci pour votre aide
JP
jpierrethillard
Le #5333681
Fredo

Oui merci. Un oubli grossier de ma part!
J'ai ajouté la ligne suivante juste après le
With selection
Cells(4, 3 + i).Select

J'ai conservé seulement la ligne: .Orientation = 90
Sinon la macro prend beaucoup trop de temps pour s'exécuter.
Je pensais qu'il y avait une autre solution pour que mes copies se
fassent plus rapidement.

Merci encore
JP

On 13 jan, 11:38, "Fredo P."
Il manque au minimum cela
With selection
        'format de la cellule (cells(4,3+i)) après copy
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
        .WrapText = False
        .Orientation = 90
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = True
        .ReadingOrder = xlContext
        .MergeCells = False
End With
Sheets(i).Range("c5:c64").Copy Sheets("Synthese").Cells(5, 3 + i)
Sheets(i).Range("g6:j41").Copy Sheets("Synthese").Cells(6, x)
Sheets(i).Range("g48:j54").Copy Sheets("Synthese").Cells(48, x)
x = x + 4
Next
End Sub

J'ai un blocage à la ligne:  .HorizontalAlignment = xlCenter

Merci pour votre aide
JP


Brunos
Le #5333641
Suggestion pour accélérer ce genre de code :
Application.ScreenUpdating = False ' en début de code
et remettre à True à la fin.
Brunos


Fredo

Oui merci. Un oubli grossier de ma part!
J'ai ajouté la ligne suivante juste après le
With selection
Cells(4, 3 + i).Select

J'ai conservé seulement la ligne: .Orientation = 90
Sinon la macro prend beaucoup trop de temps pour s'exécuter.
Je pensais qu'il y avait une autre solution pour que mes copies se
fassent plus rapidement.

Merci encore
JP

On 13 jan, 11:38, "Fredo P."
Il manque au minimum cela
With selection
'format de la cellule (cells(4,3+i)) après copy
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 90
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = True
.ReadingOrder = xlContext
.MergeCells = False
End With
Sheets(i).Range("c5:c64").Copy Sheets("Synthese").Cells(5, 3 + i)
Sheets(i).Range("g6:j41").Copy Sheets("Synthese").Cells(6, x)
Sheets(i).Range("g48:j54").Copy Sheets("Synthese").Cells(48, x)
x = x + 4
Next
End Sub

J'ai un blocage à la ligne: .HorizontalAlignment = xlCenter

Merci pour votre aide
JP


jpierrethillard
Le #5333501
Brunos,

Effectivement c'est incomparable.

Merci
JP

On 13 jan, 12:17, "Brunos"
Suggestion pour accélérer ce genre de code :
Application.ScreenUpdating = False ' en début de code
et remettre à True à la fin.
Brunos


Fredo

Oui merci. Un oubli grossier de ma part!
J'ai ajouté la ligne suivante juste après le
With selection
       Cells(4, 3 + i).Select

J'ai conservé seulement la ligne: .Orientation = 90
Sinon la macro prend beaucoup trop de temps pour s'exécuter.
Je pensais qu'il y avait une autre solution pour que mes copies se
fassent plus rapidement.

Merci encore
JP

On 13 jan, 11:38, "Fredo P."



Il manque au minimum cela
With selection
'format de la cellule (cells(4,3+i)) après copy
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 90
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = True
.ReadingOrder = xlContext
.MergeCells = False
End With
Sheets(i).Range("c5:c64").Copy Sheets("Synthese").Cells(5, 3 + i)
Sheets(i).Range("g6:j41").Copy Sheets("Synthese").Cells(6, x)
Sheets(i).Range("g48:j54").Copy Sheets("Synthese").Cells(48, x)
x = x + 4
Next
End Sub

J'ai un blocage à la ligne: .HorizontalAlignment = xlCenter

Merci pour votre aide
JP- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -



Publicité
Poster une réponse
Anonyme