Aide vba

Résolu/Fermé
delfleflille Messages postés 24 Date d'inscription mercredi 14 novembre 2007 Statut Membre Dernière intervention 7 novembre 2008 - 10 janv. 2008 à 16:19
Fxbrg Messages postés 710 Date d'inscription samedi 17 mars 2007 Statut Membre Dernière intervention 16 novembre 2013 - 10 janv. 2008 à 17:02
Bonjour,
voila, je cherche une fonction qui me permettrait en gros demettre cette condition:
si la formule de la cellule commence par getctdat( , alors....

mais jene sais pas comment traduire la condition en vba...

merci

10 réponses

Nicos pgt 407
10 janv. 2008 à 16:30
tu peux essayer (je connais que le VBA, mais pas le VB, je sais pas si cela va t'aider):

If worksheets("nom_de_ta_feuille).range("nom_ou_coordonnées_de_ta_cellule").Formula="getctdat(..." Then
...
...
Else
...
End If

bne journée :)
0
delfleflille Messages postés 24 Date d'inscription mercredi 14 novembre 2007 Statut Membre Dernière intervention 7 novembre 2008 4
10 janv. 2008 à 16:36
bah ça marche pas.

en fait, si je reformule ma question, je voudrais savoir quel caractete remplace une chaine de caractere
0
Nicos pgt 407
10 janv. 2008 à 16:40
je ne comprends pas la question maintenant...
Quel est le but de ce que tu veux faire, nous pourrions y voir plus clair peut-être

A ploutch`
0
delfleflille Messages postés 24 Date d'inscription mercredi 14 novembre 2007 Statut Membre Dernière intervention 7 novembre 2008 4
10 janv. 2008 à 16:43
Je veux que toutes les cellules dont la formule commence par getctat( quelques soient les arguments de cette fonction soient copiés et collés en valeurs

je sais pas si c'est beaucoup plus clair... :S
0

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

Posez votre question
Fxbrg Messages postés 710 Date d'inscription samedi 17 mars 2007 Statut Membre Dernière intervention 16 novembre 2013 199
10 janv. 2008 à 16:46
Si tu veux verifier que le debut de la formule (sans le signe =) est egal à "getctdat" sans distinction de ce qu'il y a derrière, utilise Left et Right pour extraire le morceau dela chaine sur lequel tu veux faire la comparaison...

If Right(Left(ActiveCell.Formula, 9), 8) = "getctdat" Then
MsgBox "c'est OK"
End If

:-)
0
Nicos pgt 407
10 janv. 2008 à 16:51
tu peux essayer ça... tiens moi o courant, mci

Private Sub CommandButton1_Click()

If Range("a1").Formula = "=36*6" Then
'pour tester si la formule marche
MsgBox "OK"
Range("nom_de_cellule").Select
'selectionne la cellule qui correspond à ton critère
Selection.Copy
'et finalement colle unique les valeurs dans les cellules de destination (en occurence la cellule de départ
Range("nom_de_la_cellule_où_tu_veux_copier_la_valeur_uniquement").Select
Selection.PasteSpecial Paste:=xlPasteValues
Else
MsgBox "IL YA UN PROBLEME"
End If

End Sub
0
delfleflille Messages postés 24 Date d'inscription mercredi 14 novembre 2007 Statut Membre Dernière intervention 7 novembre 2008 4
10 janv. 2008 à 16:54
j'ai fait cette formule, d83 est une ceulle concernée par cette formule, et ça met sorry.......

Sub test()
Range("d83").Select

If Right(Left(ActiveCell.Formula, 9), 8) = "GetCtData" Then
MsgBox "ok"
Else
MsgBox "sorry"
End If


End Sub
0
delfleflille Messages postés 24 Date d'inscription mercredi 14 novembre 2007 Statut Membre Dernière intervention 7 novembre 2008 4
10 janv. 2008 à 16:58
ça marche Nicos pgt 407
0
Nicos pgt 407
10 janv. 2008 à 17:02
OKay, c'est cool alors.
Au plaisir.
Ciao !
0
Fxbrg Messages postés 710 Date d'inscription samedi 17 mars 2007 Statut Membre Dernière intervention 16 novembre 2013 199
10 janv. 2008 à 17:02
Ben chez moi ça marche...C'est pas un pb de casse avec les GetCtDat...? De toute façon si l'autre script fonctionne, ça roule :-)
0