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

For each qui marche pas

fifi

XLDnaute Occasionnel
bonjour
apres consultation des archives, j'ai récupéré un bout de code que j'ai retouché un peu mais ils ne marche pas

le but étant de remplacer toutes les cellules contenant le texte #valeur! (je dis texte car cela fait suite à un copié/collage spéciale)

Code:
Dim plage As Range
Dim c As Variant
Set plage = Range('C50:C54')

For Each c In plage
If c = '#valeur!' Then
     c = 1
End If
Next c
End Sub


A la ligne If c.... j'ai une erreur d'incompatibilité de type, malgres avoir définie la variable c comme Variant en désespoire de cause.


il y aurait un truc que j'ignore?

merci de m'aider

:lol:
 

Jam

XLDnaute Accro
Salut fifi,

essaie avec ça:
Code:
Sub test()
Dim plage As Range
Dim c As Variant
Set plage = Range('C50:C54')
For Each c In plage
If IsError(c) Then
     c = 1
End If
Next c
End Sub
 

fifi

XLDnaute Occasionnel
@Bebere
justement avant il y avaot range et comme ca générait une erreur j'ai mis Variant (passe partout)
mais toujours cette erreur d'incompatibilité.

@jam
merci pour cette subtile solution
elle ne fonctionne pas avec
Code:
Dim C as variant
mais uniquement avec
Code:
im C as Range

allez savoir pourquoi ...
merci en tout cas
 
A

america78

Guest
Bonjour,

j'ai un besoin a peu pres identique que fifi.
si ce n'est que je dois supprime tous les elements 'N/A' sur la colonne L d'une feuille excel.
jai essaye de reprendre le code propose dans ce topic mais en vain. voici ce que jai fais:

Dim plage As Range
Dim c As Range
Set plage = Range('L1:L50')
For Each c In plage
If c = 'N/A' Then
c = ''
End If
Next c

quelqu'un peut a une idee?
MErci
 

Bebere

XLDnaute Barbatruc
bonsoir Fifi,Jam,America

Sub Macro1()
'
Dim Cel As Range
With Sheets('NomFeuille')'changer NomFeuille
For Each Cel In .Range('L1:L' & .Range('L65536').End(xlUp).Row)
If IsError(Cel) Then
Cel = ''
End If
Next Cel
End With
End Sub
 

Jam

XLDnaute Accro
Salut Bebere, america,

Il faut que tu mettes:

Dim plage As Range
Dim c As Range
Set plage = Range('L1:L50')
For Each c In plage
If IsError(x) Then
If x = CVErr(2042) Then x = ''
End If
Next


Bonne soirée
 

Bebere

XLDnaute Barbatruc
rebonsoir
essaye avec pièce jointe [file name=Erreur_20060413212202.zip size=7997]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Erreur_20060413212202.zip[/file]
 

Pièces jointes

  • Erreur_20060413212202.zip
    7.8 KB · Affichages: 9

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…