XL 2013 Formater hauteur de ligne aller et retour

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonnjour à toutes et à tous,

Je me permets de vous solliciter à nouveau car je n'arrive pas à trouver la bonne solution à mon souci.

Je souhaite :
1 formater la cellule (donc la ligne) active à une hauteur,
2 que cette ligne soit remise à sa hauteur initiale quand je clique dans une cellule d'un autre ligne.
Malgré mes tests et recherches, je n'ai pas trouvé.

J'ai fait ce petit code qui fonctionne bien pour le point 1
Code:
Private Sub Worksheet_SelectionChange(ByVal R As Range)
On Error Resume Next
If Not Intersect(R, Range("a1:v10000")) Is Nothing And R.Count = 1 Then
    ActiveCell.RowHeight = 300
    End If
End Sub

Le fichier joint sera peut-être plus explicite que mes vagabondages LOL

Je vous remercie, comme toujours de votre gentillesse.
Bonne fin de journée,
Amicalement,
Lionel,
 

Pièces jointes

  • Test hauteur ligne aller et retour.xlsm
    18.1 KB · Affichages: 50

vgendron

XLDnaute Barbatruc
Hello
si je saisi bien le besoin...
par défaut, toutes tes lignes font 40pixels de hauteur
et quand tu cliques sur une cellule (de ta zone)
la ligne passe à 300 de hauteur...

si c'est bien ca..
dans le texte ci dessus. tu as déjà la réponse :)

ce qui donnerait
VB:
Private Sub Worksheet_SelectionChange(ByVal R As Range)
On Error Resume Next
Range("a1:v10000").RowHeight = 40 'par défaut
If Not Intersect(R, Range("a1:v10000")) Is Nothing And R.Count = 1 Then
    ActiveCell.RowHeight = 300
End If
End Sub
 

Lolote83

XLDnaute Barbatruc
Salut Arthour973, Vgendron,
Bien vu Vgendron, j'allais répondre quand tu m'as encore devancé.
Ma proposition était basé sur un vieux vieux vieux fichier et le temps de l'anonymer, tu es passé par là.
Je le joins tout de même mais la solution de Vgendron est la meilleure.
Mon fichier fonctionnait uniquement sur le n° de téléphone
@+ Lolote83
 

Pièces jointes

  • AnnuairePourArthour973.xls
    62 KB · Affichages: 39

Jacky67

XLDnaute Barbatruc
Bonnjour à toutes et à tous,

Je me permets de vous solliciter à nouveau car je n'arrive pas à trouver la bonne solution à mon souci.

Je souhaite :
1 formater la cellule (donc la ligne) active à une hauteur,
2 que cette ligne soit remise à sa hauteur initiale quand je clique dans une cellule d'un autre ligne.
Malgré mes tests et recherches, je n'ai pas trouvé.

J'ai fait ce petit code qui fonctionne bien pour le point 1
Code:
Private Sub Worksheet_SelectionChange(ByVal R As Range)
On Error Resume Next
If Not Intersect(R, Range("a1:v10000")) Is Nothing And R.Count = 1 Then
    ActiveCell.RowHeight = 300
    End If
End Sub

Le fichier joint sera peut-être plus explicite que mes vagabondages LOL

Je vous remercie, comme toujours de votre gentillesse.
Bonne fin de journée,
Amicalement,
Lionel,
Bonjour,
Si tu es certain de ta plage de 10000 Lignes
Il faudra aller en ligne 10001 pour que cela change à 30
Code:
Private Sub Worksheet_SelectionChange(ByVal R As Range)
If R.Count > 1 Then Exit Sub
If Not Intersect(R, Range("a1:v10000")) Is Nothing Then
  R.RowHeight = 300
Else
  Cells.RowHeight = 30
End If
End Sub
 

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour Jacky67,

Merci d'être là toi aussi.
Mais j'ai pas compris
Il faudra aller en ligne 10001 pour que cela change à 30
Effectivement, ton code ne semble pas solutionner pas le point 2.

Les codes de VGendron et de Lolotte83 fonctionnent.
Voir le fichier joint dans lequel j'ai ajouté une feuille contenant ton code.

Amicalement,
Lionel,
 

Pièces jointes

  • Test hauteur ligne aller et retour.xlsm
    62.3 KB · Affichages: 36

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Re à toutes et à tous,

J'ai un souci auquel je n'avais pas pensé à l'utilisation du code :
Code:
Private Sub Worksheet_SelectionChange(ByVal R As Range)
On Error Resume Next
Range("a1:v10000").RowHeight = 40 'par défaut
If Not Intersect(R, Range("a1:v10000")) Is Nothing And R.Count = 1 Then
    ActiveCell.RowHeight = 300
End If
End Sub

En effet :
- Pour re-formater à chaque clic la hauteur de mes maxi 50.000 lignes, c'est plusieurs secondes et quand on clique plusieurs centaines de fois dans la journée, c'est beaucoup de temps.
- dans mon fichier, j'ai besoin d'afficher, selon des critères de tris, certaines lignes pour certaines actions et masquer les autres. Le code me ré-affiche tout à chaque clic et, du cou de la tête, plus moyen d'avoir en affichage les lignes souhaitées.

L'idéal, me semble-t-il, serait de remplacer cette ligne de code :
Code:
Range("a1:v10000").RowHeight = 40 'par défaut
par un code lui demandant de modifier la hauteur de la ligne UNIQUEMENT de la cellule "cliquée" avant le nouveau clic.

Mais ça, c'est certainement une autre affaire et peut-être pas possible ???
Je cherche .......
Bonne fin de journée à toutes et à tous,
Amicalement,
Lionel,
 

Jacky67

XLDnaute Barbatruc
Re à toutes et à tous,

par un code lui demandant de modifier la hauteur de la ligne UNIQUEMENT de la cellule "cliquée" avant le nouveau clic.

Mais ça, c'est certainement une autre affaire et peut-être pas possible ???
Je cherche .......
Bonne fin de journée à toutes et à tous,
Amicalement,
Lionel,
Re..
Un clic dans une cellule puis reclique dans celle à ces cotés passe alternativement de 300 à 30
Feuille Jacky67V2
 

Pièces jointes

  • Test hauteur ligne aller et retourV2.xlsm
    63.2 KB · Affichages: 45

Jacky67

XLDnaute Barbatruc
Re Jacky,

C'est super ce code :)
Un grand merci :)
RE..
Je ne sais pas à quoi cela va servir, mais si tu veux pouvoir saisir des données dans cette ligne utilise plutôt la version doubleClic
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal R As Range, Cancel As Boolean)
  Cancel = True
  R.RowHeight = IIf(R.RowHeight = 300, 30, 300)
End Sub
 
Dernière édition:

Jacky67

XLDnaute Barbatruc
Merci Jacky,
Je vais tester sur mon fichier de travail.
Dans la feuille, il y a bcp de codes qui s'exécutent aux clics des cellules.
Je vais voir le comportement et je te dirai.
Encore merci.
Bonne fin de journée,
:)
re..
Si tu souhaites agrandir colonne +ligne + le texte, il y a ceci
A adapter à tes besoins, bien sur
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal R As Range, Cancel As Boolean)
  Cancel = True
  R.RowHeight = IIf(R.RowHeight = 300, 30, 300)
  Rows(R.Row).Font.Size = IIf(R.RowHeight = 300, 40, 10)
  Rows(R.Row).EntireColumn.AutoFit
End Sub
 

Discussions similaires

Réponses
7
Affichages
327

Membres actuellement en ligne

Statistiques des forums

Discussions
312 104
Messages
2 085 349
Membres
102 869
dernier inscrit
radyreth