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
 

Jacky67

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


et je met la formule sur exemple de jacky67 (je connaissais pas la subtilité address)
RE..
c.Offset(, 1).Formula = "=if(" & c.Offset.Address & " = ""DRF"",""Oui"",""Non"")"
Nul besoin du 2ème offset dans ce cas
c.Offset(, 1).Formula = "=if(" & c.Address & " = ""DRF"",""Oui"",""Non"")"
 

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"")"
 

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas