Macro : cellule vide bug

  • Initiateur de la discussion Initiateur de la discussion kakemphaton
  • Date de début Date de début

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 !

K

kakemphaton

Guest
Bonjour à tous,

Je tâtonne toujours autant et dès que cela sort du cadre, j'ai un peu de mal. Bref,
Je tente cette macro pour remplir automatiquement les cellules vides.
Cette formule doit remplir les cellules vides de la colonne K. Si, celle-ci est vide, Excel doit la remplir en ajoutant 29 à la cellule i. Donc, si K27 est vide, Excel doit faire en k27 : i27+29.

Code:
Sub cellulesvides()
For i = 1 To Range("k65536").End(xlUp).Row
        If IsEmpty(Cells(i, 2)) Then
        Cells(i, 2).FormulaLocal = "=SI(NON(ESTVIDE(K2));"";I2+29)"

  End If
Next
End Sub

Je visualise le problème, les 1 posent soucis, mais i doit aussi avoir autre chose.

Merci d'avance
 
Re : Macro : cellule vide bug

Bonne année kakemphaton et le forum
Sans vraiment chercher
Code:
Sub cellulesvides()
Dim X As Long
For X = 1 To Range("k65536").End(xlUp).Row
    If IsEmpty(Cells(X, "B")) Then
        Cells(X, "B").FormulaLocal = "=SI(NON(ESTVIDE(K" & X & "));"""";I" & X & "+29)"
    End If
Next X
End Sub
Plusieurs "erreurs" :
- "" les guillements doivent être doublé dans une chaîne, pour indiquer que que ce sont des guillemets et non la fin ou le début d'une chaine
- Il faut intercaler les variables entre les morceaux de texte inchangé

- Tu ne peux pas mettre en K2, si K2=""... référence circulaire. Je me suis appuyé sur ton code et non ta description du problème

Pour la lisibilité :
- se servir des indentations
- Éviter d'utiliser une variable avec les référence des cellules
- Cells(X, "K") est plus facile à lire que Cells(X, 11)
A+
 
Dernière édition:
Re : Macro : cellule vide bug

Bonjour,

Avec FormulaLocal, il faudrait essayer :
Code:
Sub cellulesvides()
Dim i As Long
For i = 1 To Range("k65536").End(xlUp).Row
        If IsEmpty(Cells(i, 2)) Then
        Cells(i, 2).FormulaLocal = "=If(Not(isblank(K" & i & ")),"""",I2+29)"
  End If
Next
End Sub
A +
🙂

Edit : Salut Gorfael 🙂
 
Re : Macro : cellule vide bug

Merci bien à vous deux, tu as raison Gorfael, je ne peux pas appliquer en K2, si K2 (référence circulaire), mais en copiant la formule de James007 ou la tienne, j'obtiens aucun résultat en fait. Mon raisonnement doit être mauvais.

Si, vous pouviez m'aider, j'ai mis la macro dans un fichier Excel avec des données.

Merci
 

Pièces jointes

- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
9
Affichages
884
Réponses
3
Affichages
879
Réponses
0
Affichages
657
Réponses
7
Affichages
829
Retour