Se connecter avec
S'enregistrer | Connectez-vous

VBA Access Probleme d'éxecution Automation

Dernière réponse : dans Programmation

Bonjour,
j'ai un souci toujours avec de l'automation je dois donner a mes cellules des oculeures de fond régler les bordure et la fusionner. mon code compile s'éxécute sans erreur mais rien ne se passe.
Si quelqu'un peut m'aider je le remercie davance.

  1. With xls.ActiveSheet.Range("B1:B2")
  2. .VerticalAlignment = xlCenter
  3. .WrapText = False
  4. .Orientation = 0
  5. .AddIndent = False
  6. .ShrinkToFit = False
  7. .ReadingOrder = xlContext
  8. .MergeCells = True
  9. End With
  10. xls.ActiveSheet.Range("B1:B2").Borders(xlDiagonalDown).LineStyle = xlNone
  11. xls.ActiveSheet.Range("B1:B2").Borders(xlDiagonalUp).LineStyle = xlNone
  12. With xls.ActiveSheet.Range("B1:B2").Borders(xlEdgeLeft)
  13. .LineStyle = xlContinuous
  14. .Weight = xlMedium
  15. .ColorIndex = 1
  16. End With
  17. With xls.ActiveSheet.Range("B1:B2").Borders(xlEdgeTop)
  18. .LineStyle = xlContinuous
  19. .Weight = xlMedium
  20. .ColorIndex = 1
  21. End With
  22. With xls.ActiveSheet.Range("B1:B2").Borders(xlEdgeBottom)
  23. .LineStyle = xlContinuous
  24. .Weight = xlMedium
  25. .ColorIndex = 1
  26. End With
  27. xls.ActiveSheet.Range("B1:B2").Borders(xlEdgeRight).LineStyle = xlNone
  28. xls.ActiveSheet.Range("B1:B2").Borders(xlInsideVertical).LineStyle = xlNone
  29. xls.ActiveSheet.Range("B1:B2").Borders(xlInsideHorizontal).LineStyle = xlNone
  30. xls.ActiveSheet.Range("B1:B2").Interior.ColorIndex = 6


Sinon y'a t'il un moyen de créer la macro dans excel pour l'éxécuter depuis Excel??
Lassé par la pub ? Créez un compte

je te conseille d'enlever ces 2 lignes :
  1. xls.ActiveSheet.Range("B1:B2" ).Borders(xlInsideVertical).LineStyle = xlNone
  2. xls.ActiveSheet.Range("B1:B2" ).Borders(xlInsideHorizontal).LineStyle = xlNone

d'apres moi ils servent a rien

puis il vaut mieux de ajouter
  1. With xls.ActiveSheet.Range("B1:B2" ).Borders(xlEdgeRight)
  2. .LineStyle = xlContinuous
  3. .Weight = xlMedium
  4. .ColorIndex = 1
  5. End With


sinon il te manquera le cote droit :D 

mais comme tu veux les fusionner c bon faut pas le mettre
(dsl mais j'avais pas bien compris le terme fusionner :whistle:  )

Je voyais pas bien pourquoi tu pensais ca et je viens de tilter... Rien ne passe... Moi je suis sur que si mais tu ne le vois pas.
Quand tu appelles l'automation tu créé une nouvelle instance d'excel, un nouveau process, donc si tu as déjà un excel d'ouvert ce n'est pas le même et les actions que tu fais se font de manière totalement invisible, d'ailleur vérifie ton gestionnaire de taches tu verras autant des excel en trop...

Pour corriger cela, déjà avant la mise à jour tu ouvres le classeur voulu, puis tu enregistre en quittant. Sinon tu affiches simplement ton xls.
  1. xls.application.visible = true


PS : Bien sur que c'est faisable directement sur Excel, il suffit de copier ce code en enlevant juste tout ce qui concerne xls.
Lassé par la pub ? Créez un compte