Je reviens vers vous car à mon premier soucis, vous avez résolu mon petit tracas en deux-trois mouvements
J'ai un tableau qui se remplit au fur et à mesure que l'on saisit un formulaire userform.
Tout fonctionne parfaitement mais je rencontre de petits d'affichages sur la feuille excel :
1) Dans mon formulaire j'ai un champ commentaire. lorsque le formulaire est envoyé dans la feuille excel, la hauteur de la ligne ne s'ajuste pas et donc du texte reste caché.
Sur la feuille excel, j'ai le retour automatique à la ligne de coché et je dois à chaque fois double-cliquer à gauche entre deux lignes pour que celà s'ajuste automatiquement.
Seul mon champs commentaire dans mon formulaire de saisie peut déborder la ligne est :
Code:
ActiveSheet.Cells(numLigneVide, 17) = txtobs.Text
Je suis preneur d'une solution
2) Chose déjà demandé je suppose mais pas réussit à mettre en place. J'aimerais que lorsqu'une ligne n'est pas vide, chaque cellule de la colonne x à y ait une bordure.
Et aussi que lorsque je supprime la ligne de mon tableau que la bordure disparaisse
Jre me demandais s'il existait un petit script qui à la fin fasse ce contrôle et me mette les bordures.
Merci pour la suggestion . L'idéal pour moi serait que lorsqu'une ligne se remplit, toute la ligne soit formaté a une certaine largeur.
NumLigneVide est ma variable, j'ai essayé :
Mais cela ne marche pas... J'ai essayé en mettant des guillemets.... Et ça va pas
Concernant le format automatique , l'idéal serait que j'applique une largeur prédéfini comme j'essaie
et que si mon commentaire ne rentre pas dans ma largeur prédéfini , la ligne s'aggrandisse.
Mais qu'en aucun cas la ligne s'ajuste a une largeur inférieure de celle que je veut.
mais tu utilises la propriété "RowHeight", s'applique à la hauteur d'une ligne... ce sont les colonnes qui possèdent une propriété "largeur" (ColumnWidth)..
Re,
Oui je me suis mal exprimé il s'agit bien de la hauteur de la ligne car mes colonnes restent fixes et doivent le rester pour respecter le format de mon tableau
Concernant la bordure des cellules, j'ai réussi en faisant ce petit module (ayant 23 colonnes) :
Code:
For y = 1 To 13
ActiveSheet.Cells(numLigneVide, y).Borders.Weight = xlThin
Next y
Concernant la hauteur de ligne, j'arrive à fixer une hauteur prédéfini :
Code:
ActiveSheet.Cells(numLigneVide, 1).RowHeight = 24
Le hic réside dans ma colonne 17 (Observations) ou le texte peut être + long ...... Et dans ce cas, la hauteur ne s'adapte pas et reste à 24 ....
Le soucis est que si j'utilise EntireRow.Autofit, je ne veux pas que ma hauteur de ligne soit inférieure à 24 lorsque j'utilise cette fonction.
Je me suis dit, est-il possible de récupérer la hauteur de ma ligne connue sous la variable NumLigneVide et qu'ensuite si elle est inférieure à 24 j'applique la ligne donnée + haut ou si elle est supérieure je laisse en Autofit.
NumLigneVide est la variable qui contient la première ligne vide de mon tableau.
Pour forcer le retour à la ligne automatique dans la cellule lorsque le contenu txtobs.Text est envoyé dans ma feuille avec la fonction au dessus, je dois mettre quoi et à quelle moment ?
Je précise que dans mon userform, si je tape un texte, il va bien tout seul à la ligne.
J'ai trouvé en faisant ainsi et en utilisant ton code
Code:
ActiveSheet.Cells(numLigneVide, 15).WrapText = True
With Rows(numLigneVide)
.EntireRow.AutoFit
If .RowHeight < 24 Then .RowHeight = 24
End With
Dernier tracas, sur une même feuille je gère deux tableaux. J'aimerais à chquae saisie dans le premier tableau, qu'il insère une ligne vide. Comme celà je garde une ligne vide entre les deux. J'ai donc essayé :