Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Si cellule vide alors

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Ken Hutchinson

XLDnaute Occasionnel
Salut,

Je suis toujours dans ma macro mais je rencontre quelques soucis..

Voilà : je fais un filtre automatique sur une valeur mais certains groupes ne possèdent pas cette valeur. Comme j'ai déjà copié les groupes dans une autre feuille et que je colle cette valeur ça me décale tout car le filtre auto n'a pas selectionné toutes les valeurs... et oui comme c'était vide...

Alors je me disais : comment dire à une macro de faire ça :
dans la colonne B, en ligne 5, si je n'ai pas le caractère Y alors j'y écris Y et ainsi de suite toute les 25 lignes, si ya déjà Y forcément on fait rien...

Vous sauriez faire ça les p'tits chats ?
 
Re : Si cellule vide alors

re

toutes les cellules de la colonne B seront testées, le saut de 25 dans ce cas ne sert à rien meme si c'est toute les 25 lignes que ta cellule vide apparait
par contre j'ai un bug, la toute la colonne sera testee

for eache cel in range(B:b65536).end(xlup).row

à confirmer par le forum, je suis le fil
 
Re : Si cellule vide alors

et c'est là mon problème !! car il y a plusieurs cellules vides et après cette ligne (5 - 30 - 55.......) j'ai une autre série dans laquelle, il faut écrire S (en 6 - 31 - 56....), et ainsi de suite...

vous croyez que c'est faisable ?
 
Re : Si cellule vide alors

Bonjour Ken Hutchinson, Wilfried

Essaye ce code, il boucle sur la colonne B, a partir de la ligne 5 (tu peux modifier si tu l'adaptes à une série qui commence par 6), et toutes les 25 lignes il remplace une cellule vide par Y.

Code:
Sub test()
Dim l As Integer, MaPlage As Range

Set MaPlage = Range("B1:B" & Range("B65536").End(xlUp).Row)

For l = 5 To MaPlage.Rows.Count Step 25
    If MaPlage(l, 1).Value = "" Then MaPlage(l, 1).Value = "y"
Next l
End Sub

@Wilfried
il faudra que tu m'expliques ton code..

Code:
for eache cel in range(B:b65536).end(xlup).row
un minimum de test et de cohérence est tout de même à faire avant de répondre afin de conserver la grande qualité de ce forum...

bonne journée
@+
 
Re : Si cellule vide alors

bonjour Ken wilfried_42 Pierrot93 le forum une autre facon de faire
Option Explicit
Sub zy()
Dim i&, c&
Application.ScreenUpdating = False
[b5].Select
If [b5].Value = "" Then [b5] = "y"
For i = 30 To [b65536].Row
If cells(i, 2) = "" Then cells(i, 2) = "y"
i = i + 24
Next i
[b6].Select
If [b6].Value = "" Then [b6] = "s"
For c = 31 To [b65536].Row
If cells(c, 2) = "" Then cells(c, 2) = "s"
c = c + 24
Next c
End Sub'salutations
 
Re : Si cellule vide alors

rebonjour tous le monde une version simplifie
Option Explicit
Sub z()
Dim i&
Application.ScreenUpdating = False
[b5].Select
If [b5].Value = "" Then [b5] = "y"
If [b6].Value = "" Then [b6] = "s"
For i = 30 To [b65536].Row
If Cells(i, 2) = "" Then Cells(i, 2) = "y"
If Cells(i + 1, 2) = "" Then Cells(i + 1, 2) = "s"
i = i + 24
Next i
End Sub'salutations
ps par contre si tu traite seulement ex:500lignes tu peus ecrire
For i = 30 To [b500].Row la macro ira toujours plus vite !!
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

M
Réponses
3
Affichages
840
MrNathan58
M
Réponses
6
Affichages
1 K
A
Réponses
4
Affichages
668
A
Z
Réponses
10
Affichages
1 K
Z
S
Réponses
8
Affichages
1 K
K
Réponses
4
Affichages
1 K
K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…