XL 2010 Methode range qui echoue erreur 1004

Profane

XLDnaute Occasionnel
Bonjour à tous
je nomme precedement une plage
et ensuite je fait une boucle sur celle ci mais ca plante sur la ligne For each c...
d'avance merci

Sub test()
Dim c As Range

For Each c In Range("donnees")
c.Value = "=if(c.Offset(, -1).Value= ""DRF"";""Oui"";""Non"")"
Next c

End Sub
 

Dranreb

XLDnaute Barbatruc
Bonjour.
Mettez un espion sur Range("donnees")
Ce nom n'est probablement pas défini dans le classeur.
Après :
VB:
With Feuil1.[donnees]
  .FormulaR1C1 = "=IF(RC[-1]=""DRF"",""Oui"",""Non"")"
  .Value = .Value: End With
 
Dernière édition:

Profane

XLDnaute Occasionnel
Bonjour et merci a vous
la solution est un assemblage de vos réponses

Sub test()
With Sheets("donnees")
Dim c As Range
'on regarde la colonne GTR (pour avoir le nombre de ligne a traitée)
For Each c In Range("GTR").Cells
c.Offset(, 1).Formula = "=if(" & c.Offset.Address & " = ""DRF"",""Oui"",""Non"")"
Next c
End With
End Sub

les explications :
Dranreb , le nom existe bien mais il prends en compte la colonne entière (ne comprenant aucune données)...mea culpa
ce qui foirait pour exécuter la boucle
donc je me suis référé à la colonne de gauche (remplie elle) c est la colonne GTR
puis je décale c.Offset(, 1). pour remplir la bonne colonne, la colonne données
et je met la formule sur exemple de jacky67 (je connaissais pas la subtilité address)

encore un grand merci a vous tous
 

Dranreb

XLDnaute Barbatruc
Il n'empêche que pour plus de rapidité il vaudrait mieux faire toutes les cellules d'un coup :
VB:
Feuil1.[GTR].Offset(, 1) .FormulaR1C1 = "=IF(RC[-1]=""DRF"",""Oui"",""Non"")"
ou bien :
VB:
Feuil1.[GTR].Offset(, 1) .FormulaR1C1 ="=IF(GTR=""DRF"",""Oui"",""Non"")"
 

Discussions similaires

Statistiques des forums

Discussions
315 093
Messages
2 116 139
Membres
112 669
dernier inscrit
Guigui2502