Automatiser hauteur de cellule selon sa valeur

Bonjour à tous,

Voilà, je cherche à automatiser une macro pour un tableau d'une 100taine de lignes.

Le but est de modifier la hauteur de ligne selon la valeur de d'une cellule présente dessus.

J'ai déjà réussi à faire cette étape mais je n'arrive pas à ré-exécuter la macro sur la cellule suivante.

Voici un aperçu de ma macro:

Sub LOG_2()

Range("C2").Select

Dim Hauteur

Hauteur = Range("C2").Value

Selection.RowHeight = Hauteur

Range("C2").Offset(1, 0).Select

End Sub

La solution est peut-être très simple, mais je découvre le VBA depuis hier et suis un peu perdu.

Toute proposition est la bienvenue!

14excel-pratique.xlsm (221.40 Ko)

Bonjour TOTO_W04,

J'ai écris cette petite macro qui fonctionne :

Sub ChangementLigne() Dim DLigne As Integer DLigne = Range("A65536").End(xlUp).Row For i = 2 To DLigne Range("A" & i).Select Selection.RowHeight = Range("B" & i) Next End Sub

Cordialement,

Bonjour et sur le forum,

Je te propose le code ci-dessous:

Sub LOG_2()
Dim ligFin As Long

ligFin = Range("a" & Rows.Count).End(xlUp).Row

For i = 2 To ligFin
    On Error Resume Next
    Range("a" & i).RowHeight = Range("c" & i).Value
    On Error GoTo 0
Next i
End Sub

Il y a plusieurs choses à comprendre dans ce code:

pour avoir le numéro de la dernière ligne remplie en colonne A, j'utilise: Range("a" & Rows.Count).End(xlUp).Row

Colonne A, dernière ligne (Rows.Count renvoie le nombre de lignes dans le classeur), et je fais l'équivalent du raccourci Ctrl+Flèche du haut, je pars vers le haut et m'arrête à la première cellule remplie, une fois que je la trouve, je renvoie son numéro de ligne en ajoutant .Row.

Une fois que j'ai ce numéro de ligne, (33 par exemple), il me reste à faire une boucle entre la première ligne, la 2, et la 33, je parcours donc les valeurs 2, 3, 4, 5... à 33 avec la boucle For... Next, la valeur est stockées dans la variable i.

Il me reste ensuite à utiliser cette variable quand j'ai besoin du numéro de ligne, seulement, écrire Range("Ai") ne marchera pas, il faut assembler du texte fixe avec une valeur variable, pour ça j'utilise & en écrivant: Range("A" & i), ensuite je change directement la valeur RowHeight en utilisant la valeur en Range("C" & i), donc la colonne C de la ligne qu'on traite, on utilise la valeur qu'une fois dans le programme, il n'est pas nécessaire de l'enregistrer dans une variable

J'ai rajouté On Error Resume Next, et On Error GoTo 0 pour gérer les erreurs que peut générer le changement de hauteur de ligne, pour la valeur 650.3, le programme plantait, seulement, avant je lui dis "en cas d'erreur, tu passes à la ligne suivante", puis après, je lui dis "en cas d'erreur, affiche un message d'erreur comme tu le fais d'habitude".

Choses dont j'ai parlé:

Bonne lecture

Rechercher des sujets similaires à "automatiser hauteur valeur"