Macro excel qui plante "Méthode Range"

Pangs - 19 avril 2000 à 21:24
 Suhail - 26 avril 2000 à 18:59
J'ai un probleme avec une macro ecxel .
Cette macro execute un graphique 3d de surface, et sa premiere ligne de code est : Range("B2:AG23").Select .
Jusqu'ici tout va bien , la ou sa se corse c'est la deuxime fois que j'exécute cette macro , dans mon code , la méthode range échou et je cherche comme régler se probleme ???

10 réponses

Bon temps

Je vous propose la solution sous forme d'un exemple:

Sub SaNeMarchePasPourLa2Fois()
Dim xLApp as Excel.Application
Range("B2:AG23").Select
End Sub

Sub SaVaMarchePourLa2Fois()
Dim xLApp as Excel.Application
xLapp.Range("B2:AG23").Select
End Sub

Bon chance.
0
Cette facon de faire ne fonctionne pas .

If Graphique3D.Temps_Fixe = True Then
Range("B2:AG43").Select
Charts.Add
ActiveChart.ChartType = xlSurfaceWireframe
ActiveChart.SetSourceData Source:=Sheets("Feuil1").Range("B2:AG43"), PlotBy _
:=xlColumns
Else

Ceci ne fonctionne pas lors du deuxieme passage il saute jusqu'a end sub.
0
Tu n'a pas bien compris mon exemple.

Plus clairement, la faut ce du faite que tu lance "Range"(ou Select...) directement sans dire à quelle objet Excel se refaire t 'elle, mais si tu précise l'objet, il n'y aura pas des échoues.

Donc votre code devrait être comme suit:
(Je supposai que l'objet Excel crée s 'appel xlapp)

If Graphique3D.Temps_Fixe = True Then
xlApp.Range("B2:AG43").Select '!!!!!!!!
Charts.Add
xlapp.ActiveChart.ChartType = xlSurfaceWireframe '!!!!!!!!!
ActiveChart.SetSourceData Source:=xlapp.Sheets("Feuil1").Range("B2:AG43"), PlotBy _
:=xlColumns '!!!!!!!!!!
Else

Et sa va marché!!?
0
Je suis désoler de devoir te dire sa mais cela ne fonction pas plus qu'avant.

En ajoutant Xlapp.... en avant , il ne le prend pas . Et cela meme si c'est la premier fois qu'il y passe .
Je devrai pt te donné le source au complet (Pas trop gros) ??

Je revien demain !!
0

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

Posez votre question
Dit moi, le macro est executé ou?
si se macro est dans Excel alors je te propose de copier leur code dans une feuille d'un nouveau projet VB,puis
tu declare à l'entete du code de la feuille :
0
Dit moi, le macro est exécuté ou?
si se macro est dans Excel alors je te propose de copier leur code dans une feuille d'un nouveau projet VB,puis
tu déclare à l’entête du code de la feuille :
Dim MyXlApp as Excel.Application
Puis :
sub YourMacro()
' ici le code de macro
' ....
MyXlApp.Range(......

End Sub

càd, tu va précédé tout les lignes de code qui débute par de fonctions Excel
par MyXlApp.LaFonction

Et bon chance!
N.B: Je bien rencontre votre problème, et elle ma fait tournée la tète, mais avec cette solution je réussi de le contournée.
0
J'ai commencer a créer la macro avec Excel et je l'ai ensuite coller dans Vb.
Mon programme l'appel et génère un graphique. Ensuite si je lui fait executer cette macro une deuxime fois , elle plante a la premiere ligne .

J'ai essayer de mettre Xlapp.. Devant 'range' comme tu m'as la conseiller , mais aucun resultas!!

J'espère que ton aide me sera utile car cela fait un bout que je cherche comment régle ce problème.

Mercie... ('_')
0
En fin, je t’envierai un petit projet
en VB6 sur votre @ qui est sur le cite.
Ce projet contient un exemple d'automatisation d’Excel.

Suhail
0
As-tu recus mon e-mail avec mon source??
0
OUI
Bon jour
En cas où on veut rexecuter la procedure, alors il faut supprimer
le graph pour que la feuille recupere le caracteristique d'une feuille de
calcule,
et comme sa on peut utiliser la méthode Range qui renvoi une plage de la
feuille(une ou
plusieures cellules), sinon cette méthode echoue puisque la feuille est un
graph et non pas une feuille de calcul !.
0
Rejoignez-nous