Coller une string dans une cellule

Résolu
anisometropie Messages postés 16 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 22 août 2011 - 10 août 2011 à 16:45
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 - 22 août 2011 à 12:05
Bonjour !!

j'ai des tas de format conditions dans mon fichier excel,
afin de vérifier si la condition est vérifiée, j'ai du coller la formule dans une cellule (ici la cellule IV1) pour ensuite faire un Evaluate("IV1")
mais j'ai des problèmes pour certaines cellules,
au moment de faire Range("IV1").Value = formula, j'ai une "Erreur définie par l'application ou par l'objet"
formula vaut " =ET($I$148= "Non";$I$150="Non")", et il ne veut pas me copier ça dans Range("IV1").Value
pour il ne bronche pas pour " =$H$103= "Non""
pourquoi me fait il ça pour "=ET($I$148="Non";$I$150="Non")" et pas pour " =$H$103="Non"" ????



merci !!




Sub Import()
    On Error GoTo RecupError
    
    Dim MyFile As String
    Dim l_RefFile As String
    
    Dim formula As String
    MyPath = ThisWorkbook.Path
    MyFile = Dir(MyPath & "\*.xls")
    l_RefFile = ThisWorkbook.Name
    
    Do While MyFile <> ""
        If InStr(1, MyFile, ".xls") And (MyFile <> l_RefFile) Then
            Workbooks.Open (MyPath & "" & MyFile)
            For Each Sheet In ActiveWorkbook.Sheets
                For Each cell In Sheet.UsedRange.SpecialCells(xlCellTypeAllFormatConditions).Cells
                    formula = cell.FormatConditions(1).Formula1
                    Range("IV1").Value = formula
                    If Evaluate("IV1") = False Then
                        cell.Interior.ColorIndex = 6
                    Else
                        cell.Interior.ColorIndex = 7
                    End If
                Next
            Next
            
            'ActiveWorkbook.Close SaveChanges:=False
        End If
        MyFile = Dir
    Loop
    Exit Sub
    
    
    
RecupError:
    Debug.Print Err.Description
    Debug.Print formula
    Range(cell.Address).Select
    Resume Next
End Sub

8 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
10 août 2011 à 18:44
Bonjour,
Voici l'aspect (exemple) que doit revêtir une syntaxe de formule contenant des " :
Range("C2").FormulaLocal = "=ET($A$1=""Non"";$B$1=""Non"")"

A toi d'en tenir compte


____________________
Utiliser le bouton "REPONSE ACCEPTEE" sur une réponse exacte facilite les recherches ultérieures d'autres forumeurs. PENSEZ-Y SVP
3
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
10 août 2011 à 18:53
Et comme Excel est très susceptible, il faut quelquefois le "feinter", si on passe par des cellules/tremplin.

Voici un exemple de feinte :

toto = "ET($A$1=""Non"";$A$1=""Non"")"
  Range("A1").Value = toto
  maformule = Range("A1").Value
  Range("C2").FormulaLocal = "=" & maformule

____________________
Utiliser le bouton "REPONSE ACCEPTEE" sur une réponse exacte facilite les recherches ultérieures d'autres forumeurs. PENSEZ-Y SVP
3
anisometropie Messages postés 16 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 22 août 2011
11 août 2011 à 10:18
merci !
0
anisometropie Messages postés 16 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 22 août 2011
19 août 2011 à 11:11
salut, j'ai de nouveau un problème avec mes chaines
la première ligne fonctionne bien, mais la deuxième donne une "1004 : erreur définie par l'application ou l'objet"

Formula = "=ET($I$153=""Non"";$I$151=""Non"")"
Range("IV1").Value = Formula
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
anisometropie Messages postés 16 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 22 août 2011
19 août 2011 à 11:17
pardon en fait c'est bon, j'avais oublié un petit truc
0
anisometropie Messages postés 16 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 22 août 2011
19 août 2011 à 11:26
Puissante ta petite feinte quand même

Formula = cell.FormatConditions(1).Formula1
Formula = Right(Formula, Len(Formula) - 1)
Range("IV1").Value = "=" & Formula


être obligé de virer le" =" pour devoir le remettre juste après, c'est signé microsoft, y'a pas de doute
0
anisometropie Messages postés 16 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 22 août 2011
22 août 2011 à 11:40
BON
alors

ce truc marche :

Formula = "=ET($I$153=""Non"";$I$151=""Non"")"
Formula = Right(Formula, Len(Formula) - 1)
Range("IV1").Formula = Formula


ce truc marche pas :(la troisième ligne)

Formula = "=ET($I$153=""Non"";$I$151=""Non"")"
Formula = Right(Formula, Len(Formula) - 1)
Range("IV1").Formula = "=" & Formula


ce truc non plus : (troisième ligne aussi)
Formula = "=ET($I$153=""Non"";$I$151=""Non"")"
Range("IV1").Formula1 = Right(Formula, Len(Formula) - 1)
Range("IV1").Formula1 = "=" & Range("IV1").Formula1
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
22 août 2011 à 12:05
1) ouvre ton aide en ligne sur les mots Formula et FormulaLocal
2) quant à la propriété Formula1, elle n'existe pas !


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne intallée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
Rejoignez-nous