[résolu]VBA pour Format cellule, bordure

Al capone

XLDnaute Junior
Bonsoir à tous,

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 d'avance :)
 
Dernière édition:

Al capone

XLDnaute Junior
Re : VBA pour Format cellule, bordure

Salut,

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é :
Code:
Rows("NumLigneVide:NumLigneVide").RowHeight = 22.5
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.

Merci pour ta future aide
 

Pierrot93

XLDnaute Barbatruc
Re : VBA pour Format cellule, bordure

Bonjour,

tu parles de largeur :
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)..

bonne journée
@+
 

Al capone

XLDnaute Junior
Re : VBA pour Format cellule, bordure

Rebonjour,

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.

Merci pour vous futures réponses
 

Al capone

XLDnaute Junior
Re : VBA pour Format cellule, bordure

Code:
Re,

je vais tester celà Merci.

Ma colonne observation est remplie ainsi :
Code:
ActiveSheet.Cells(numLigneVide, 15) = txtobs.Text
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.

Merci encore :)
 

Al capone

XLDnaute Junior
Re : VBA pour Format cellule, bordure

Re,

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é :
Code:
Rows(NumLigneVide).Insert Shift:=xlDown
Et il ne m'insère pas de Ligne...
 

Pierrot93

XLDnaute Barbatruc
Re : VBA pour Format cellule, bordure

Re,

Code:
NumLigneVide = 5
Rows(NumLigneVide).Insert Shift:=xlDown

un code comme celui-ci insère bien une ligne avant la ligne 5, et ce sur la feuille active... à voir si ta variable est bien initialisée...
 

Discussions similaires

Réponses
9
Affichages
139
Réponses
21
Affichages
291
Réponses
17
Affichages
650

Statistiques des forums

Discussions
312 215
Messages
2 086 330
Membres
103 187
dernier inscrit
ebenhamel