Bonjour, dans le fichier joint j'apprécierais votre aide pour finaliser un bout de code dont je ne suis pas capable de réaliser.
Tous mes tentatives ont échouées.
Merci à l'avance.
Bonjour, dans le fichier joint j'apprécierais votre aide pour finaliser un bout de code dont je ne suis pas capable de réaliser.
Tous mes tentatives ont échouées.
Merci à l'avance.
Bonjour,
En publiant votre code, vous augmentez vos chances d'obtenir de l'aide car une bonne partie des contributeurs de ce forum dont je fais partie n'ouvre pas les fichiers joints surtout à l'ouverture d'une discussion.
Philippe Tulliez
Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer suret si celle-ci est pertinente pensez à voter
Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier
Je suis capable de sélectionner le Range 1,2 ou 3 maintenant comment je fais
pour écrire à partir du bas vers le haut avec une macro ?
Mes Range ont toujours 6 lignes.
Je ne sais jamais combien de lignes que je vais écrire dans chacune des cellules des différents range.
J'aimerais un bout de code seulement pour le Range1 par exemple.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 Option Explicit Sub Test() Dim i as integer For Each c In Range("Range1").Cells For i = 6 To 1 Step -1 If Trim(c.value) = "" Then c.value = Valeur quelconque Next i Exit For Next End if
Bonjour,
Petit exemple sur la première colonne du Range
La fonction Trim que vous avez utilisée n'a de sens que si un caractère espacé risque de se trouver dans la cellule donc si vous pensez que ce soit possible, voici la ligne 5 modifiée
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 Sub Test() Dim r As Integer With Range("range1") For r = 6 To 1 Step -1 If Len(.Cells(r, 1).Value) = 0 Then .Cells(r, 1).Value = "Toto" Next End With End Sub
Personnellement, j'éviterais l'utilisation de la constante 6 pour s'affranchir de la limite des 6 lignes et j'utiliserais la propriété Count de la collection Rows du Range qui indiquera le nombre de ligne de celui-ci. Range
Code : Sélectionner tout - Visualiser dans une fenêtre à part If Len(Trim(.Cells(r, 1).Value)) = 0 Then .Cells(r, 1).Value = "Toto"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 Sub Test() Dim r As Integer With Range("range1") For r = .Rows.Count To 1 Step -1 If Len(Trim(.Cells(r, 1).Value)) = 0 Then .Cells(r, 1).Value = "Toto" Next End With End Sub
Philippe Tulliez
Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer suret si celle-ci est pertinente pensez à voter
Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier
Merci beaucoup Philippe, c'est exactement ce dont je cherchais et surtout la simplicité de ton code.
Partager