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

Aide sur code VBA appliquer valeur si champ vide.

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 !

Soleil11

XLDnaute Occasionnel
Bonjour le forum,

J'utilise le code ci-dessous et il fonctionne très bien mais il ne retourne pas toutes les valeur jusqu`à la cellule B22.

Comment puis-je modifier ce code afin qu'il me retourne toutes les valeurs en fonction du nombre de valeur en colonne A. J'ai mis une copie de mon fichier en pièc jointe.

Sub SetScope()

With Sheets(1)

Lrow = .Cells(Rows.Count, "B").End(xlUp).Row

For Each c In .Range(Cells(2, 2), Cells(Lrow, 2)) 'indiquer la colonne

If IsEmpty(c.Value) Then c.Value = "yes"

Next c

End With

End Sub

Merci pour votre aide.

Soleil 11😕
 

Pièces jointes

Re : Aide sur code VBA appliquer valeur si champ vide.

Bonjour 🙂

A priori
Code:
Sub SetScope()
With Sheets(1)
Lrow = .Cells(Rows.Count, "A").End(xlUp).Row ''''''' en remplacant B par A ...''''''
For Each c In .Range(Cells(2, 2), Cells(Lrow, 2)) 'indiquer la colonne
If IsEmpty(c.Value) Then c.Value = "yes"
Next c
End With
End Sub

A +
🙂
 
Dernière édition:
Re : Aide sur code VBA appliquer valeur si champ vide.

Salut Soleil11 et le forum
J'ai eu du mal à comprendre (si c'est ça) : Tu veux que ta macro renseigne toutes les cellules de B suivant la plage de A.
Déjà, utilise les balises de code (# en mode avancé)

Comme t'a déjà répondu James007, il ne faut pas baser ton calcul de plage sur B, qui peut être totalement vide, mais sur A. Comme il a déjà répondu, d'autres versions :
Code:
Sub SetScope()
Dim Cel As Range
With Sheets(1)
    For Each Cel In .Range(.Cells(2, "B"), .Cells(Rows.Count, "A").End(xlUp).Offset(0, 1))
        If IsEmpty(Cel) Then Cel = "yes"
    Next Cel
End With
End Sub

Sub SetScope_1()
With Sheets(1)
    .Range(.Cells(2, "B"), .Cells(Rows.Count, "A").End(xlUp).Offset(0, 1)).SpecialCells(xlCellTypeBlanks) = "yes"
End With
End Sub
Les deux font la même chose.
A+
 
Re : Aide sur code VBA appliquer valeur si champ vide.

Bonjour le forum,

Le code ci-dessus fonctionne parfaitement mais existe-t-il un code plus rapide mon tableau fait 40'000 lignes et je le trouve un peu lent.

Merci pour votre aide à nouveau.

Soleil11
 
Re : Aide sur code VBA appliquer valeur si champ vide.

Bonsoir à tous

Salut Soleil11
Tu as testé SetScope_1 ? Pas sûr qu'on puisse faire plus rapide.
A+
Je crois que si :
Code:
Sub toto()
Dim i&, oDat, oPlg As Object
  With Sheets(1)
    Set oPlg = Range(.Cells(1, 1), .Cells(.Rows.Count, 1).End(xlUp).Offset(0, 1))
    If Not oPlg Is Nothing Then
      oDat = oPlg.Value
      For i = 2 To UBound(oDat, 1)
        If Not IsEmpty(oDat(i, 1)) And IsEmpty(oDat(i, 2)) Then oDat(i, 2) = "yes"
      Next
    End If
    oPlg.Value = oDat
  End With
End Sub
ROGER2327
#4756


Dimanche 15 Sable 138 (Khurmookum du Dr Faustroll, SS)
25 Frimaire An CCXIX
2010-W50-3T16:55:42Z
 
Dernière édition:
- 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

Réponses
5
Affichages
848
Réponses
3
Affichages
411
Réponses
2
Affichages
740
Réponses
10
Affichages
598
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…