Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : VBA et l'option de complément automatique [ Langages dérivés / VBA ] (ZANUS)

samedi 2 septembre 2006 à 20:32:54 | VBA et l'option de complément automatique

ZANUS

Bonsoir à tous

Lorsqu'on écrit un code VBA affiche une fenêtre de complément automatique des instructions. Par exemple, si je tape le code suivant:
If Range("A1").
J'ai une fenêtre avec les options suivantes:
Activate
AddComment
......
......
XPath

Il suffit de cliquer sur la 1ère lettre S par exemple et de double-cliquer sur Select ou de saisir bien entendu directement l'instruction ou propriété.

Par contre, si je tape l'instruction suivante:
If Cells(i,j).
alors là je n'ai aucune aide. Pourtant quand j'écris If Cells(i,j) et que je finis de saisir mon code et que je lance l'instruction, la macro fonctionne bien.

Ma question est donc la suivante: pourriez-vous m'expliquer s'il vous plaît pourquoi dans certains cas, la fenêtre de complément s'ouvre bien et dans d'autres cas, non?


samedi 2 septembre 2006 à 21:26:14 | Re : VBA et l'option de complément automatique

mortalino

Membre Club


Salut,

y'a t-il seulement une réponse à ta demande ?
Le mystère reste à coup sûr entier, et peut-être que le monde qui nous entoure n'est pas ce qu'il paraît.
En gros, je pense que personne peut vraiment se l'expliquer, pense au F2 (explorateur d'objets) qui te permet d'avoir ce qui pourrait apparaitre dans ta "fenêtre de complément"

@++


  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"

samedi 2 septembre 2006 à 21:56:45 | Re : VBA et l'option de complément automatique

PCPT

Administrateur CodeS-SourceS
salut,
toute classe (objet) a une valeur par défaut
en VB6 par exemple, faire Text1.text="bonjour" ou text1="bonjour", c'est pareil car la propriété .text est celle par défaut.
pour tester :
Text1.[_Default] = "bonjour"
(il est cependant préférable d'indiquer explicitement chaque propriété, si ce n'est que d'un point de vue de relecture..)

il est possible qu'il en soit de même pour Cells(x,y) qui peut renvoyer .value par défaut par exemple.
quant au fait que le menu auto ne s'affiche pas, çà peut être du à une erreur dans ton code, dans quel cas VBA attend réparation avant de fournir de l'aide (c'est le cas pour VB6 du moins)

si pas d'erreur, tu peux forcer (après le point) avec ctrl+espace. à tenter...

nb : dans F2 les propriétés par défaut ont une image (point bleu). voir les propriétés masquées
++
PCPT   [AFCK]

Prenez un instant pour répondre à ce sondage svp

samedi 2 septembre 2006 à 22:05:17 | Re : VBA et l'option de complément automatique

mortalino

Membre Club


Salut PCPT,

je viens de tester le Ctrl + espace, cela ne fait rien.
C'est vrai que le cells(1, 1).  ne fait pas afficher la liste attaché à ce membre.
Mais cela le fait pour la fonction Find aussi. (je n'en ai pas d'autre en tête).

J'ai lu sur le site de M$ que suivant ce que tu mets dans les évènemens ThisWorkBook Activate et Deactivate, cela provoque un conflit.


Les failles de VBA ?

@++


  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"

samedi 2 septembre 2006 à 22:22:20 | Re : VBA et l'option de complément automatique

PCPT

Administrateur CodeS-SourceS
peut-être les collections....




Prenez un instant pour répondre à ce sondage svp

samedi 2 septembre 2006 à 22:35:21 | Re : VBA et l'option de complément automatique

ZANUS

Salut Mortalino et PCPT
Je donne un exemple que j'ai repris sur ce forum

If Range("A1").Value <> "TOTO" Then
Range("B1").Value = 1
Else
Range("B1").Value = 2
End If

Si je tape Range("B1"). j'ai bien la fenêtre des valeurs qui s'ouvre.Je tapeV pour aller directement sur Value et je sélectionne l'option.

Par contre avec le code suivant, la fenêtre ne s'affiche pas:
For i = 1 To 200
For j = 1 To 350
If Cells(i, j).Value = 1 Then
Cells(i + 2, j) = 0End If
Next j
Next i

Lorsque je saisis Cells(i,j). je n'ai rien. La macro s'exécute bien si je saisis tout le code: je veux dire par là que je saisis la propriété Value. Je n'ai pas de message d'erreur.Je ne comprends donc pas comment tu peux dire PCPT qu' il est possible que Cells(x,y)  peut renvoyer .value par défaut. Si je ne dis pas de bêtises, quand je mets un point, VBA attend une expression, sauf qu'encore une fois, parfois VBA me propose une liste et parfois non.Effectivement Mortalino,ça me le fait pour d'autres syntaxes que je n'ai pas en tête non plus à cet instant.Concernant ta remarque sur This Workbook, je ne m'en occupe pas. Je veux dire par là que tape mon code et que je colle aucune instruction dans ThisWorkbook.


samedi 2 septembre 2006 à 22:47:56 | Re : VBA et l'option de complément automatique

mortalino

Membre Club

Mais nous avions compris cher ami.

Lorsque PCPT te dit que la propriété Value est par défaut, cela veut dire que chaque membre d'une collection à sa propriété par défaut.

MsgBox Cells(1, 1)
Bah ça fonctionne, bien qu'il soit préférable de mettre le .Value

Conclusion : Ton code est bon, c'est juste que Microsoft n'est pas parfait, sur des milliers d'objets, le fait de ne pas avoir cette liste sur 2 ou 3 % n'est pas handicapant.
C'est comme ça et c'est tout. Ce sera peut-être corrigé dans la prochaine version d'Office.

@++


  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"

samedi 2 septembre 2006 à 22:49:39 | Re : VBA et l'option de complément automatique

mortalino

Membre Club


ah et "Concernant ta remarque sur This Workbook, je ne m'en occupe pas. Je veux dire par là que tape mon code et que je colle aucune instruction dans ThisWorkbook."

--> c'était pour dire que des bugs peuvent arriver !

@++


  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"

samedi 2 septembre 2006 à 23:02:43 | Re : VBA et l'option de complément automatique

ZANUS

Pardon Mortalino, moi au contraire de toi je n'avais pas compris. Je pense avoir en partie compris ce que vous voulez dire. Par exemple, au lieu d'écrire Cell(i,j).Value= 1, je peux écrire Cells(i,j)=1. Par ailleurs, je ne lance pas d'attaque contre Microsoft. Je cherche simplement à comprendre

samedi 2 septembre 2006 à 23:36:33 | Re : VBA et l'option de complément automatique

PCPT

Administrateur CodeS-SourceS
c'est bien çà...
mais attention j'ai mis peut-être pour .Value (je ne touche pas à VBA)

je t'ai donné avec TxtBox sous VB6
et j'ai indiqué aussi que même si la plupart des (voire tous les) objets ont une propriété par défaut, il est préférable de l'appeler explicitement

++

Prenez un instant pour répondre à ce sondage svp


1 2

Cette discussion est classé dans : vba, code, fenêtre, automatique, complément


Répondre à ce message

Sujets en rapport avec ce message

fermeture automatique [ par damien ] je viens de créer ma toute première application visual basicc'est un simple formulaire avec du codeje voudrais qu'il se ferme automatiquement après l' ERREUR dans mon code [VBA niveau grand débutant] [ par Céline ] Bonjour,A celui qui a un peu de temps à perdre, j'expose mon pb ;o)J'ai essayé tant bien que mal de faire une macro VBA pour automatiser l'import, la ERREUR dans mon code [VBA niveau grand débutant] [ par Céline ] Bonjour,A celui qui a un peu de temps à perdre, j'expose mon pb ;o)J'ai essayé tant bien que mal de faire une macro VBA pour automatiser l'import, la Code VBA tableau croise [ par vince ] l'instruction suicante permet d'inserer un champs calculer dans un tableau croisée dynamique. est ul possible de faire reference a un champs precedent somme automatique à la demande [ par rudolf ] je désire écrire une macro pour faire des sommes dans des colonnes d'une feuille excel97.le code ActiveCell.FormulaR1C1 = "=SUM(R[-14]C:R[-1]C)" fait Fenêtre non modale en VBA / Excel [ par oniros ] Bonjour à tous, Sous Excel 97, je voudrais, lors de l'affichage d'une fenêtre (UserForm), que l'utilisateur ait accès à la feuille se trouvant derrièr Exercices pratiques code VBA [ par Dansar ] Bonjour,Je cherche des exercices pratiques de codes VBApour des cours sur VBA.Merci d'avancedS Code VBA pour Access [ par fakir51 ] Bonjour,j' ai un formulaire comprennant plusieur champ et j'aimerai faire une procédure évènementielle qui me permette d afficher un enregistrement gr code vba pour lier et afficher jes enregistrements d' un formulaire relationnel [ par micebos ] amicallement votre collègue programmeur!salut!je voudrais savoir comment écrit_t_on, le code vba destiné à afficher les enregistrements d' un formulai Activation du code VBA dans Excel [ par yorrick ] J'aimerai pouvoir lancer (ou activer )automatiquement à l'ouverture de monfichier Excel les codes VBA qui se trouvent dans mes feuilles ...Ce sont pou


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 2,480 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.