Excel : ajuster hauteur de la celulle par VBA

Excel : ajuster hauteur de la celulle par VBA - VB/VBA/VBS - Programmation

Marsh Posté le 25-05-2009 à 16:37:37    

:hello:  
 
Salut à tous !
 
Voici mon problème :
j'ai un classeur Excel avec 5 colonnes.
la cellule en A1 est fusionnée avec B1, C1, D1.
le format de cette cellule est :
  gauche
  justifiée
  renvoyer à la ligne automatiquement
 
Mon souci est que lorsque je saisis un texte très long, il devrait aller à la ligne de lui-même et la taille de la ligne s'ajuster automatiquement.
Mais ça ne le fait pas et on ne voit pas tout le texte.
Bref, comme j'ai pas mal de lignes dans ce cas dans mon tableau, je pensais créer une procédure passant en revue chaque ligne du tableau et ajuster automatiquement.
 
Quelqu'un peut-il m'aider sachant que j'ai essayer ça :
 

Code :
  1. Range("A65536" ).Select
  2. Do
  3.    If ActiveCell.value <> "" Then
  4.       Selection.Entirerow.Autofit
  5.    End If
  6.    ActiveCell.Offset(-1,0).Select
  7. Loop Until ActiveCell.Row = 1
  8. If ActiveCell.value <> "" Then
  9.    Selection.Entirerow.Autofit
  10. End If


 
Merci pour votre aide !
 
;)


---------------
iMac 4Ghz (fin 2015) RAM 16Go SSD 256Go SSD 2To
Reply

Marsh Posté le 25-05-2009 à 16:37:37   

Reply

Marsh Posté le 25-05-2009 à 20:47:22    


Hi,
 
Je ne comprends pas trop pourquoi parcourir l'intégralité des lignes, et je ne vois pas trop non plus l'intérêt du .offset ?
Est-ce que tu souhaites que ton texte aille à la ligne, ou bien que la taille de la cellule s'adapte au texte.. ?
 
En attendant, un premier essai :
 

Code :
  1. Dim a As Integer
  2. Sub MiseEnForme()
  3. 'On définit le nombre de lignes réellement utilisées
  4. Sheet1.Select
  5. nbrligne = Sheet1.Range("A65536" ).End(xlUp).Row
  6. 'Puis on les parcourt
  7. For a = 1 To nbrligne
  8. If Sheet1.Range("A" & a).Value <> "" Then
  9.       Sheet1.Range("A" & a).Select
  10.       'WrapText pour renvoyer le texte à la ligne
  11.       Selection.WrapText = True
  12.       'Ou bien Autofit pour adapter la taille des cellules
  13.       'Selection.EntireColumn.AutoFit
  14.       'Selection.EntireRow.AutoFit
  15. End If
  16. Next a
  17. End Sub


 
 :hello:  
 


---------------
"That kind of information doesn't just grow on trees."
Reply

Marsh Posté le 25-05-2009 à 21:15:01    


Autant pour moi pour le Offset, j'avais cru lire que tu ne voulais ajuster que les lignes de ta colonne A.
 
Deuxième essai :
 
 

Code :
  1. Dim a, nbrligne As Integer
  2. Sub MiseEnForme()
  3. 'On définit le nombre de lignes réellement utilisées
  4. Sheet1.Select
  5. nbrligne = Sheet1.Range("A65536" ).End(xlUp).Row
  6. 'Puis on les parcourt
  7. For a = 1 To nbrligne
  8. 'Pour chaque ligne on parcourt les cinq premières colonnes
  9. For b = 1 To 5
  10. 'Ici on renvoie le texte à la ligne
  11. If Sheet1.Cells(a, b).Value <> "" Then
  12.       Sheet1.Cells(a, b).Select
  13.       Selection.WrapText = True
  14. End If
  15. Next b
  16. Next a
  17. End Sub



---------------
"That kind of information doesn't just grow on trees."
Reply

Marsh Posté le 26-05-2009 à 15:04:42    

:hello:  
 
Désolé mais je ne me suis pas bien exprimé...
Chaque cellule de la colonne 1 est fusionnée avec les 4 colonnes suivantes.
Et j'écris du texte dans chaque cellule qui peut être long...
 
Bref, j'ai découvert que des cellules fusionnées ne peuvent pas renvoyer à la ligne automatiquement... (limite Excel ou alors non développé par MS).
 
Finalement, j'ai fait autrement...
 
Je parcours chaque ligne, défusionne la cellule en colonne 1, définis la taille de cette cellule de la largeur de la somme des 5 colonnes, fais un Autofit (la cellule s'épaissit !), j'enregistre dans une mémoire la taille de la ligne, refusionne les 5 colonnes et redéfinit la taille de la ligne grâce à la mémoire...
 
ça marche nickel chrome...
 
 :sol:


---------------
iMac 4Ghz (fin 2015) RAM 16Go SSD 256Go SSD 2To
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed