Remplacement donnée macro VBA

Signaler
Messages postés
13
Date d'inscription
vendredi 10 novembre 2000
Statut
Membre
Dernière intervention
10 février 2009
-
Messages postés
13
Date d'inscription
vendredi 10 novembre 2000
Statut
Membre
Dernière intervention
10 février 2009
-
bonjour,
voila je viens de créer une petite macro VBA exel et je suis confronté un un petit soucis que ne comptends pas.
ci dessous mon code. Mon soucis se trouve à la fin je l'ai mis en rouge. Je voudrai remplacer par tout ou je trouve #VALEUR! par un blanc ou rien. La macro s'exécute pas de problème mais ne fait rien. Auriez vous une petite idée.
d'avance merci

    ChDir "C:\Jipé"
    Workbooks.Open Filename:="C:\Jipé\tabl cmu a test.xls"
    Columns("C:C").Select
    Selection.NumberFormat = "0"
    Columns("A:A").Select
    Selection.Insert Shift:=xlToRight
    Selection.Insert Shift:=xlToRight
    Selection.Insert Shift:=xlToRight
    Range("C3").Select
    ActiveCell.FormulaR1C1 = "=RIGHT(RC[1],7)-RIGHT(RC[1],8)"
    Range("C3").Select
    Selection.AutoFill Destination:=Range("C3:C65536"), Type:=xlFillDefault
    Range("A1").Select
    ActiveCell.FormulaR1C1 = "RESULTAT3"
    Range("B1").Select
    ActiveCell.FormulaR1C1 = "RESULTAT2"
    Range("C1").Select
    ActiveCell.FormulaR1C1 = "RESULTAT1"
    Columns("C:C").Select
    Dim RESULTAT1 As Integer
        RESULTAT1 = 0
    Columns("B:B").Select
    Selection.NumberFormat = "0"
    Columns("C:C").Select
    Selection.NumberFormat = "@"
    Columns("D:D").Select
    Selection.NumberFormat = "0"
    Range("B3").Select
    ActiveCell.FormulaR1C1 = _
        "=IF(RC[1]=0,CONCATENATE(TEXT(""0"",""0""),INT(RC[2])),RC[2])"
    Selection.AutoFill Destination:=Range("B3:B65536"), Type:=xlFillDefault
    Range("A3").Select
    ActiveCell.FormulaR1C1 = _
        "=CONCATENATE(MID(RC[1],1,2),TEXT(""/"",""0""),MID(RC[1],3,2),TEXT(""/"",""0""),MID(RC[1],5,4))"
    Selection.AutoFill Destination:=Range("A3:A65536"), Type:=xlFillDefault
    Range("A3").Select
    Columns("A:A").Select
    Selection.Copy
    Columns("D:D").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Columns("A:C").Select
    Application.CutCopyMode = False
    Selection.Delete Shift:=xlToLeft
    Range("A1").Select
    ActiveCell.FormulaR1C1 = "JC"
    Range("A1").Select
    Cells.Replace What:="#VALEUR!", Replacement:=" ", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
   
End Sub

A+
jipé

4 réponses

Messages postés
80
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
2 octobre 2009

Salut,

  je ne suis pas sur mais #VALEUR est code erreur de Excel, tu devrais plutôt faire un test sur avec la fonction IsNull ou IsError et tu devrais pouvoir faire le remplacement de tes cellules en erreur

Bon test ^^
Messages postés
13
Date d'inscription
vendredi 10 novembre 2000
Statut
Membre
Dernière intervention
10 février 2009

merci pour ta réponse mais cela ne fonctionne pas plus. Je ne comprends pas mais j'ai pris mon fichier et créer une autre macro uniquement pour cette derniére partie et cela fonctionne. 

A+
jipé
Messages postés
80
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
2 octobre 2009

comment as tu fait ton test pour le contrôle de tes cellules possédant le #VALEUR! ? sinon autre possibilité consiste à faire un copier coller (collage spécial valeur) pour avoir non plus le code erreur mais bien la chaine texte #VALEUR!

perso quand je teste ce morceau de code

Sub Main()

  If IsError(Cells(1, "A")) Then
    MsgBox ("ERREUR")
  End If

End Sub

avec dans la cellule A1 une formule de ce genre = 20 * "A" m'affichant le #VALEUR! j'ai bel et bien ma message box

donc tu dois pas faire le test de la bonne façon
Messages postés
13
Date d'inscription
vendredi 10 novembre 2000
Statut
Membre
Dernière intervention
10 février 2009

Merci
je test dans la journée je te te tiens au courant

A+
jipé