Modif de format de cellule en VBA

Le
jpierrethillard
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
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