blocage de procédure au retour d'un call

F

Francis

Guest
Bonsoir le forum,

Voici ma procédure, toute simple:

Sub WorkSheet_Change(ByVal Target As Excel.Range)
If Target.Column = 3 Then
Numl = Target.Row
Ga = Range("C" + Numl).Value
Range("A3") = "C" + Numl
If Ga <> "" Then
Range("C" + Numl).Select
Call Proc3
End If
End If
End Sub

quand j'ouvre mon classeur et que je change une valeur dans la conne "C", la Proc3 est bien lancée et quand Proc3 est finie je reviens bien ds cette Procédure. Mais quand je change une nouvelle valeure ds la colonne "C", rien ne se passe ???
Un petit coup de main SVP Merci.
 
J

jmps

Guest
Bonjour Francis,

Sub WorkSheet_Change(ByVal Target As Excel.Range)
If Target.Column = 3 Then
Numl = Target.Row
Ga = Range("C" & Numl).Value
Range("A3") = "C" & Numl
If Ga <> "" Then
Range("C" & Numl).Select
Call Proc3
End If
End If
End Sub

J'ai remplacé les + par des & qui est l'opérateur de concaténation dans VBA. Je suis d'ailleurs étonné que cela ne te donnait pas un message d'erreur "types incompatibles".

Bonne soirée.

José
 
J

jmps

Guest
Re Francis,

Je l'ai testé chez moi et ça fonctionne bien. J'ai créé une Proc3 qui m'affiche une MsgBox et elle s'affiche à chaque changement dans la colonne C.

Le mieux serait que tu postes ton fichier s'il fait moins de 50 Ko et zippé. S'il est trop gros, essaye d'enlever des lignes ou colonnes non concernées.

A+

José
 
F

Francis

Guest
bonsoir josé, le forum,

j'ai résolu ce problème, mais c comme les trains au passage à niveau ils peuvent en caché un autre...

voici mon pb suivant:

Erreur 9 et l'indice n'appartient pas à la sélection avec cette instruction:

Range("A25") = Workbooks("chemin_complet_de _mon_classeur").Sheets("Feuil1").Range("A15").value

je veux récupérer en A25 de ma feuille active, la valeur de la cellule A15 d'un classeur fermé.

je n'est peut être pas le droit de procéder comme cela. Etant novice, je n'y connais pas grand chose ???

Merci de ton aide.

Francis.
 
M

Michel_M

Guest
Bonsoir à tous,

La solution passe par une macro dite de john Walkenbach...
tiré d'une précédente démo à adapter:

chemin est une variable donnant le dossier actif c:\mes documents\
ne pas oublier \ à la fin
le nom du classeur est donné ici par une combobox
onglet est une variable donnant le nom de la feuille
attention à la syntaxe avec les apostrpphes et guillemets

modèle pour écrire param='C:\mes documents\[Classeur1.xls]Classeur1Feuil3'!L1C1

param = "'" & chemin & "\[" & Me.CbxClasseur.Value & "]" & onglet & "'!R1C1"

' macro dite de John Walkenbach
range("A19")= ExecuteExcel4Macro(param)


Mais si tu n'as qu'une seule donnée à chercher ce serait + simple d'écrire une formule et de demander la mise à jour automatique des liens pour éviter une boite de dialogue dans une macro d'ouverture...
 
M

Michel_M

Guest
Re


Me.CbxClasseur.Value était, dans la démo, la valeur d'une sélection dans une liste déroulante (combobox)d'un userform qui donnait le nom du classeur sélectionné; par exemple cela aurait pu être "classeur1.xls"

l'instruction est la suivante:
param='C:\mes documents\[Classeur1.xls]Feuil1'!L1C1

qui donne l'adresse de la cellule A1 de la feuille1 du classeur1.xwls situé dans C:\mes documents\

dans la démo citée, le chemin, le nom du classeur, la feuille peuvent changer ce qui explique une syntaxe rébarbative. R1C1 est la forme anglaise de L1C1.

Mais je me répète si tu n'as que peu d'appels à des classeurs fermés, n'utilise pas VBA mais les formules classiques et utilise dans la macro Workbook_open
la propriété de l'objet application.asktoupdatelinks=false qui met à jour les liens sans ouverture d'une boite de dialogue.

A+
Michel
 
F

Francis

Guest
bonsoir michel, le forum,

En fait la valeur que je vais chercher dans le classeur fermé, va ds une variable. je l'affiche pour l'instant pour avoir un control visuel de ce qui ce passe. Par contre, je n'est pas tout compris en ce qui concerne application.asktoupdatelinks=false.

Merci pour tes lumières.

Francis.
 

Discussions similaires

Statistiques des forums

Discussions
312 613
Messages
2 090 233
Membres
104 460
dernier inscrit
Özlem