VBA: Application formule sur les cellules non vide
Erakmur
Messages postés
24
Statut
Membre
-
Erakmur Messages postés 24 Statut Membre -
Erakmur Messages postés 24 Statut Membre -
Bonjour,
Je cherche à remplacer
For Each c In [Aj9:Aj2000]
c = c.Formula
Par
For Each c In [Aj9:Aj2000] non vide
c = c.Formula
Pour éviter des calculs trop long le c.formula ne doit s'appliquer uniquement sur les cellules non vide de la plage.Quelqu'un a t'il une solution ?
Cordialement
Je cherche à remplacer
For Each c In [Aj9:Aj2000]
c = c.Formula
Par
For Each c In [Aj9:Aj2000] non vide
c = c.Formula
Pour éviter des calculs trop long le c.formula ne doit s'appliquer uniquement sur les cellules non vide de la plage.Quelqu'un a t'il une solution ?
Cordialement
A voir également:
- Appliquer une formule si cellule non vide excel
- Excel compter cellule couleur sans vba - Guide
- Incompatibilité de type vba ✓ - Forum VB / VBA
- Vba ouvrir un fichier excel avec chemin ✓ - Forum VB / VBA
- Erreur 13 incompatibilité de type VBA excel ✓ - Forum Excel
- Vba range avec variable ✓ - Forum VB / VBA
4 réponses
Bonjour,
Il faut ajouter un test si tu peux n'avoir aucune formule dans la plage :
eric
For Each c In [Aj9:Aj2000].SpecialCells(xlCellTypeFormulas)
Il faut ajouter un test si tu peux n'avoir aucune formule dans la plage :
Dim pl As Range
Set pl = [Aj9:Aj2000].SpecialCells(xlCellTypeFormulas)
If Not pl Is Nothing Then
For Each c In pl
'...
Next c
End If
eric
Je n'ai pas bien compris. Je remplace
For Each c In [Aj9:Aj2000]
c = c.Formula
par
Dim pl As Range
Set pl = [Aj9:Aj2000].SpecialCells(xlCellTypeFormulas)
If Not pl Is Nothing Then
For Each c In pl
'...
Next c
End If
?
For Each c In [Aj9:Aj2000]
c = c.Formula
par
Dim pl As Range
Set pl = [Aj9:Aj2000].SpecialCells(xlCellTypeFormulas)
If Not pl Is Nothing Then
For Each c In pl
'...
Next c
End If
?
C'est la macro complète, j'aurais peut être du te la donner dès le début.
Sub Validation()
Dim c As Range
Application.Calculation = xlManual
Application.ScreenUpdating = False
For Each c In [Aj9:Aj2000]
c = c.Formula
Next
Application.Calculation = xlAutomatic
End Sub
Sub Validation()
Dim c As Range
Application.Calculation = xlManual
Application.ScreenUpdating = False
For Each c In [Aj9:Aj2000]
c = c.Formula
Next
Application.Calculation = xlAutomatic
End Sub
Bonjour
La proposition d'eric (salut à toi) fonctionne bien
Peut être n'as tu pas de formule dans ta colonne
Par contre
c = c.Formula
me laisse perplexe :-()
https://mon-partage.fr/f/qqOXQ2Rr/
Cdlmnt
La proposition d'eric (salut à toi) fonctionne bien
Peut être n'as tu pas de formule dans ta colonne
Par contre
c = c.Formula
me laisse perplexe :-()
https://mon-partage.fr/f/qqOXQ2Rr/
Cdlmnt
Bonjour,
Il n'y a aucune formule dans la colonne AJ. Le mieux c'est que je donne le fichier complet
https://www.cjoint.com/c/IJopMDzi4rL
La macro simule une validation de la cellule qui déclencle une autre macro qui créer le planning avec les codes couleurs. C'est la macro Validation.
Même si cela fonctionne, cela prend trop de temps.
Il n'y a aucune formule dans la colonne AJ. Le mieux c'est que je donne le fichier complet
https://www.cjoint.com/c/IJopMDzi4rL
La macro simule une validation de la cellule qui déclencle une autre macro qui créer le planning avec les codes couleurs. C'est la macro Validation.
Même si cela fonctionne, cela prend trop de temps.
Il n'y a aucune formule dans la colonne AJ
il faut être un peu curieux si tu veux progresser.
Lorsque tu ne connais pas une instruction fait F1 dessus pour lire son aide.
L'aide sur SpecialCells t'apprend que tu as d'autre valeurs que xlCellTypeFormulas pour XlCellType .
Par exemple :
• xlCellTypeConstants. Cellules contenant des constantes
Si c'est un problème de lenteur, je vois pas en quoi retraiter à nouveau toutes les valeurs en AJ, même celles n'en ayant pas besoin, rendra l'ensemble plus rapide (?)
Et quand je vois On Error Resume Next sans raison en début d'une procédure, je me dis que j'ai affaire à qq'un qui met la poussière sous le tapis et ne cherche pas à corriger au fur et à mesure les erreurs.
Je préfère me retirer...
eric
il faut être un peu curieux si tu veux progresser.
Lorsque tu ne connais pas une instruction fait F1 dessus pour lire son aide.
L'aide sur SpecialCells t'apprend que tu as d'autre valeurs que xlCellTypeFormulas pour XlCellType .
Par exemple :
• xlCellTypeConstants. Cellules contenant des constantes
Si c'est un problème de lenteur, je vois pas en quoi retraiter à nouveau toutes les valeurs en AJ, même celles n'en ayant pas besoin, rendra l'ensemble plus rapide (?)
Et quand je vois On Error Resume Next sans raison en début d'une procédure, je me dis que j'ai affaire à qq'un qui met la poussière sous le tapis et ne cherche pas à corriger au fur et à mesure les erreurs.
Je préfère me retirer...
eric