Amartin6
Messages postés44Date d'inscriptiondimanche 30 décembre 2007StatutMembreDernière intervention21 septembre 2009
-
3 mars 2008 à 23:45
Amartin6
Messages postés44Date d'inscriptiondimanche 30 décembre 2007StatutMembreDernière intervention21 septembre 2009
-
6 mars 2008 à 00:47
Bonjour,
J'ai inséré le code suivant dans un de mes fichiers Exel. Le code est censé donner la référence de la cellule ou se trouve la variable string "text". Tout marche très bien jusqu'au cas ou le text recherché n'existe pas dans la plage. A partir de ce point j'aimerai créer qqch du style "On error" lancer une boite de dialogue pour aller chercher manuelement la cellule comme la boite qui apprait lors de la création de graphiques mais je ne sais vraiment pas comment faire...
Amartin6
Messages postés44Date d'inscriptiondimanche 30 décembre 2007StatutMembreDernière intervention21 septembre 2009 4 mars 2008 à 00:04
En fait j'aurais aussi un deuxième problème avec ce code. Celui-ci me retroune l'adresse de la cellule ou se trouve le text; par exemple $B$21. Sauf que la cellule qui m'intéresse c'est la $B$22, comment écrire $B$21 + 1?
Amartin6
Messages postés44Date d'inscriptiondimanche 30 décembre 2007StatutMembreDernière intervention21 septembre 2009 4 mars 2008 à 22:41
Merci pour la réponse mais ça ne résout pas vraiment mon problème. L'adresse de la cellule doit etre utilisée plus loin dans le code donc si l'adresse était ok ce serait tout bon mais en fait, il me faut l'adresse de la cellule se trouvant une ligne plus bas de l'adresse de la cellule recherchée initiallement donc du style AB7 + 1 mais ca marche pas!!!
Et pr la boite de dialogue, pas que ca m'indique que ca marche pas mais sur Excel je crois qu'il y a un truc pr faire apparaitre une box de ce style!?
<?xml:namespace prefix v ns "urn:schemas-microsoft-com:vml" /??><v:shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"> <v:stroke joinstyle="miter"></v:stroke><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0"></v:f><v:f eqn="sum @0 1 0"></v:f><v:f eqn="sum 0 0 @1"></v:f><v:f eqn="prod @2 1 2"></v:f><v:f eqn="prod @3 21600 pixelWidth"></v:f><v:f eqn="prod @3 21600 pixelHeight"></v:f><v:f eqn="sum @0 0 1"></v:f><v:f eqn="prod @6 1 2"></v:f><v:f eqn="prod @7 21600 pixelWidth"></v:f><v:f eqn="sum @8 21600 0"></v:f><v:f eqn="prod @7 21600 pixelHeight"></v:f><v:f eqn="sum @10 21600 0"></v:f></v:formulas><v:path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></v:path><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /??><o:lock aspectratio="t" v:ext="edit"></o:lock></v:shapetype><v:shape id="_x0000_i1025" style="WIDTH: 495.75pt; HEIGHT: 189pt" type="#_x0000_t75"><v:imagedata cropright="23889f" cropleft="14367f" cropbottom="38352f" croptop="10483f" o:title="" src="file:///C:\DOCUME~1\MARTINA\LOCALS~1\Temp\msohtml1\05\clip_image001.png"></v:imagedata></v:shape>
Pour aller chercher une cellule comme dans le cas d'un graph...
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 4 mars 2008 à 22:56
Set
Cellule = Range("A1:J20").Find(What:=text, MatchCase:=True)
te renvoie la cellule ou la valeur de la variable text a été trouvée.
Si tu veux l'adresse de la cellule en-dessous, tu n'as qu'à utiliser Offset
AutreCellule = Cellule.Address.Offset(1,0)
Pour ta boîte de dialogue, je pense que tu devras créer un UserForm et l'afficher en Modeless pour pouvoir sélectionner une cellule sur la feuille pendant que l'Userform est affiché.
Théoriquement (j'ai pas essayé...) il te faudra utiliser une variable booléenne qui définit si le Userform est affiché ou non. Donc, dès l'affichage du UserForm tu mets cette variable à True et tu la remets à False lorsqu'il se ferme. Dans le code Selection_Change de la feuille, si la variable est True, tu affectes la valeur de Target au Textbox qui devrait contenir cette valeur (ou adresse selon...)
MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
Vous n’avez pas trouvé la réponse que vous recherchez ?
Amartin6
Messages postés44Date d'inscriptiondimanche 30 décembre 2007StatutMembreDernière intervention21 septembre 2009 4 mars 2008 à 23:28
Private Sub CommandButton2_Click()
Dim k As Integer
Dim BStrikeD As Double
Dim BFeesD As Double
Dim BPriceD As Double
Dim BPositionD As Double
If BTicker <> "" Then
If BStrike <> "" Then
If Btype <> "" Then
If BMaturity1 <> "" Then
If BMaturity2 <> "" Then
If BMaturity3 <> "" Then
If BUnderlying <> "" Then
If BSector <> "" Then
If BRegion <> "" Then
If BPosition <> "" Then
If BPrice <> "" Then
If BFees <> "" Then
If Worksheets("" & BTicker & "").Cells(1, 1).value "" And Worksheets("" & BTicker & "").Cells(1, 2).value "" And Worksheets("" & BTicker & "").Cells(1, 3).value = "" Then
MsgBox ("Sorry, but this Ticker does not exist.")
Application.DisplayAlerts = False
Worksheets("" & BTicker & "").Delete
Application.DisplayAlerts = True
Exit Sub
End If
End If
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 4 mars 2008 à 23:48
Ta variable BuyingArea doit être déclarée As Range
Si BTicker est de type String, il ne sert à rien d'y ajouter des guillemets
Worksheets("" & BTicker & "")
pourrait devenir
Worksheets(BTicker)
Dim BuyingArea As Range
Set BuyingArea = Worksheets(BTicker).Range("A1:J20").Find(What:="Achat*", MatchCase:=True)
If Not BuyingArea Is Nothing Then
'blabla - le code si la valeur a été trouvée
Else
'si la valeur n'est pas trouvée, on affiche un UserForm préalablement créé
Userform1.Show vbModeless 'pour pouvoir sélectionner une cellule
End if
vbModeless n'est pas disponible pour les versions antérieures à 2000, il me semble
MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI