Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Comment lire l'activecell depuis Word ?

6 réponses
Avatar
TILLOUX
Bonjour,

Dans un doc. Excel CLIENTS-RECAP.xls avec une feuille CLIENTS, j'ai la
colonne A qui contient les noms des clients avec leur path.

C'est du style
C:\CLIENTS\GROSSISTES\TOTO
C:\CLIENTS\GROSSISTES\XXXX

ETC.

Je me positionne sur une ligne quelconque (en colonne A) et j'appelle Word
avec bouton que j'ai fait.

Dans Word je tape un doc. et j'aimerais l'enregistrer dans le path de la
cellule active Excel d'où je viens.

Pour ça j'ai créé un bouton avec une macro dans le VBA de Word.

Voilà ce que j'ai fait :

Dim xlapp as Object
Set xlapp = getObject ( , "Excel.Application")
set xlwbk = xlapp.workbooks("CLIENTS-RECAP.xls")
chemin=xlwbk.worksheets("CLIENTS").activecell

Ca plante sur cette dernière ligne. (méthode non reconnue)

si j'écris
chemin=xlwbk.worksheets("CLIENTS").cells(1,1)

c'est ok et dans chemin j'ai bien le contenu de la cellule(1,1)

Mais l'activecell ne joue pas.

Par conséquent, le repérage de la ligne en cours ne marche pas non plus.
ligne=xlwbk.worksheets("CLIENTS").activecell.row

Comment récupérer la cellule en cours ???

Merci d'avance pour votre aide.

Tilloux.

6 réponses

Avatar
michdenis
Voici un exemple de code :

'------------------------------
Sub test()
Dim Chemin As String, x as variant
Dim Fichier As String, y as variant
Dim XlApp As Object, XlWbk As Object

Chemin = "c:UsersPowerUserDocumentsDenis"
Fichier = "classeur1.xls"

'Test pour s'assurer que le fichier exite
If Dir(Chemin & Fichier) = "" Then
MsgBox "fichier introuvable. Fin des opérations"
Exit Sub
End If
On Error Resume Next
'Instantie la variable xlapp si Excel est ouvert
Set XlApp = GetObject(, "Excel.application")
'Si excel n'est pas ouvert, ça va générer une erreur
If Err.Number <> 0 Then
'Efface l'erreur
Err.Clear
'Création d'une instance d'excel même s'il est fermé
Set XlApp = CreateObject("Excel.Application")
End If
'Rend visible l'application Excel
XlApp.Visible = True 'or False
'Test pour savoir si le fichier est déjà ouvert
Set XlWbk = XlApp.Workbooks(Fichier)
'si le fichier pas ouvert-> erreur
If Err <> 0 Then
Err.Clear
Set XlWbk = XlApp.Workbooks.Open(Chemin & Fichier)
End If
'Pour travailler avec une cellule active d'une feuille
'donnée, cette dernière doit être active
With XlWbk
'Sélectionne la feuille que tu désires
.Worksheets("Feuil2").Select
'Récupére dans la variable x le contenu de la cellule active
x = ActiveCell.Value
'Récupére dans la variable y le chemin et le nom du fichier
'que tu viens d'ouvrir
y = .FullName
End With

'Tu ajoutes une ou 2 lignes de code pour transférer le
'contenu des variables vers ton application Word

'Fermeture du fichier
XlWbk.Close False 'or true si tu veux sauvegarder ou nom
'Fermeture d'excel
XlApp.Quit
'Libère l'espace mémoire des objets
Set XlWbk = Nothing: Set XlApp = Nothing

End Sub
'------------------------------



"TILLOUX" a écrit dans le message de groupe de discussion :

Bonjour,

Dans un doc. Excel CLIENTS-RECAP.xls avec une feuille CLIENTS, j'ai la
colonne A qui contient les noms des clients avec leur path.

C'est du style
C:CLIENTSGROSSISTESTOTO
C:CLIENTSGROSSISTESXXXX

ETC.

Je me positionne sur une ligne quelconque (en colonne A) et j'appelle Word
avec bouton que j'ai fait.

Dans Word je tape un doc. et j'aimerais l'enregistrer dans le path de la
cellule active Excel d'où je viens.

Pour ça j'ai créé un bouton avec une macro dans le VBA de Word.

Voilà ce que j'ai fait :

Dim xlapp as Object
Set xlapp = getObject ( , "Excel.Application")
set xlwbk = xlapp.workbooks("CLIENTS-RECAP.xls")
chemin=xlwbk.worksheets("CLIENTS").activecell

Ca plante sur cette dernière ligne. (méthode non reconnue)

si j'écris
chemin=xlwbk.worksheets("CLIENTS").cells(1,1)

c'est ok et dans chemin j'ai bien le contenu de la cellule(1,1)

Mais l'activecell ne joue pas.

Par conséquent, le repérage de la ligne en cours ne marche pas non plus.
ligne=xlwbk.worksheets("CLIENTS").activecell.row

Comment récupérer la cellule en cours ???

Merci d'avance pour votre aide.

Tilloux.
Avatar
TILLOUX
Merci pour le code. Malheureusement, dans la partie With XlWbk,

Ça plante toujours sur le x= .activecell.value

J'ai Excel 2003.

Ca doit quand même être possible de lire la cellule active !

Si tu trouves une solution, elle sera vraiment la bienvunue.

Merci d'avance.

Tilloux.

"michdenis" a écrit dans le message de news:

Voici un exemple de code :

'------------------------------
Sub test()
Dim Chemin As String, x as variant
Dim Fichier As String, y as variant
Dim XlApp As Object, XlWbk As Object

Chemin = "c:UsersPowerUserDocumentsDenis"
Fichier = "classeur1.xls"

'Test pour s'assurer que le fichier exite
If Dir(Chemin & Fichier) = "" Then
MsgBox "fichier introuvable. Fin des opérations"
Exit Sub
End If
On Error Resume Next
'Instantie la variable xlapp si Excel est ouvert
Set XlApp = GetObject(, "Excel.application")
'Si excel n'est pas ouvert, ça va générer une erreur
If Err.Number <> 0 Then
'Efface l'erreur
Err.Clear
'Création d'une instance d'excel même s'il est fermé
Set XlApp = CreateObject("Excel.Application")
End If
'Rend visible l'application Excel
XlApp.Visible = True 'or False
'Test pour savoir si le fichier est déjà ouvert
Set XlWbk = XlApp.Workbooks(Fichier)
'si le fichier pas ouvert-> erreur
If Err <> 0 Then
Err.Clear
Set XlWbk = XlApp.Workbooks.Open(Chemin & Fichier)
End If
'Pour travailler avec une cellule active d'une feuille
'donnée, cette dernière doit être active
With XlWbk
'Sélectionne la feuille que tu désires
.Worksheets("Feuil2").Select
'Récupére dans la variable x le contenu de la cellule active
x = ActiveCell.Value
'Récupére dans la variable y le chemin et le nom du fichier
'que tu viens d'ouvrir
y = .FullName
End With

'Tu ajoutes une ou 2 lignes de code pour transférer le
'contenu des variables vers ton application Word

'Fermeture du fichier
XlWbk.Close False 'or true si tu veux sauvegarder ou nom
'Fermeture d'excel
XlApp.Quit
'Libère l'espace mémoire des objets
Set XlWbk = Nothing: Set XlApp = Nothing

End Sub
'------------------------------



"TILLOUX" a écrit dans le message de groupe de
discussion :

Bonjour,

Dans un doc. Excel CLIENTS-RECAP.xls avec une feuille CLIENTS, j'ai la
colonne A qui contient les noms des clients avec leur path.

C'est du style
C:CLIENTSGROSSISTESTOTO
C:CLIENTSGROSSISTESXXXX

ETC.

Je me positionne sur une ligne quelconque (en colonne A) et j'appelle Word
avec bouton que j'ai fait.

Dans Word je tape un doc. et j'aimerais l'enregistrer dans le path de la
cellule active Excel d'où je viens.

Pour ça j'ai créé un bouton avec une macro dans le VBA de Word.

Voilà ce que j'ai fait :

Dim xlapp as Object
Set xlapp = getObject ( , "Excel.Application")
set xlwbk = xlapp.workbooks("CLIENTS-RECAP.xls")
chemin=xlwbk.worksheets("CLIENTS").activecell

Ca plante sur cette dernière ligne. (méthode non reconnue)

si j'écris
chemin=xlwbk.worksheets("CLIENTS").cells(1,1)

c'est ok et dans chemin j'ai bien le contenu de la cellule(1,1)

Mais l'activecell ne joue pas.

Par conséquent, le repérage de la ligne en cours ne marche pas non plus.
ligne=xlwbk.worksheets("CLIENTS").activecell.row

Comment récupérer la cellule en cours ???

Merci d'avance pour votre aide.

Tilloux.



Avatar
michdenis
Il ne doit pas y avoir de point devant .activecell.value
seulement activecell.value


"TILLOUX" a écrit dans le message de groupe de discussion :

Merci pour le code. Malheureusement, dans la partie With XlWbk,

Ça plante toujours sur le x= .activecell.value

J'ai Excel 2003.

Ca doit quand même être possible de lire la cellule active !

Si tu trouves une solution, elle sera vraiment la bienvunue.

Merci d'avance.

Tilloux.

"michdenis" a écrit dans le message de news:

Voici un exemple de code :

'------------------------------
Sub test()
Dim Chemin As String, x as variant
Dim Fichier As String, y as variant
Dim XlApp As Object, XlWbk As Object

Chemin = "c:UsersPowerUserDocumentsDenis"
Fichier = "classeur1.xls"

'Test pour s'assurer que le fichier exite
If Dir(Chemin & Fichier) = "" Then
MsgBox "fichier introuvable. Fin des opérations"
Exit Sub
End If
On Error Resume Next
'Instantie la variable xlapp si Excel est ouvert
Set XlApp = GetObject(, "Excel.application")
'Si excel n'est pas ouvert, ça va générer une erreur
If Err.Number <> 0 Then
'Efface l'erreur
Err.Clear
'Création d'une instance d'excel même s'il est fermé
Set XlApp = CreateObject("Excel.Application")
End If
'Rend visible l'application Excel
XlApp.Visible = True 'or False
'Test pour savoir si le fichier est déjà ouvert
Set XlWbk = XlApp.Workbooks(Fichier)
'si le fichier pas ouvert-> erreur
If Err <> 0 Then
Err.Clear
Set XlWbk = XlApp.Workbooks.Open(Chemin & Fichier)
End If
'Pour travailler avec une cellule active d'une feuille
'donnée, cette dernière doit être active
With XlWbk
'Sélectionne la feuille que tu désires
.Worksheets("Feuil2").Select
'Récupére dans la variable x le contenu de la cellule active
x = ActiveCell.Value
'Récupére dans la variable y le chemin et le nom du fichier
'que tu viens d'ouvrir
y = .FullName
End With

'Tu ajoutes une ou 2 lignes de code pour transférer le
'contenu des variables vers ton application Word

'Fermeture du fichier
XlWbk.Close False 'or true si tu veux sauvegarder ou nom
'Fermeture d'excel
XlApp.Quit
'Libère l'espace mémoire des objets
Set XlWbk = Nothing: Set XlApp = Nothing

End Sub
'------------------------------



"TILLOUX" a écrit dans le message de groupe de
discussion :

Bonjour,

Dans un doc. Excel CLIENTS-RECAP.xls avec une feuille CLIENTS, j'ai la
colonne A qui contient les noms des clients avec leur path.

C'est du style
C:CLIENTSGROSSISTESTOTO
C:CLIENTSGROSSISTESXXXX

ETC.

Je me positionne sur une ligne quelconque (en colonne A) et j'appelle Word
avec bouton que j'ai fait.

Dans Word je tape un doc. et j'aimerais l'enregistrer dans le path de la
cellule active Excel d'où je viens.

Pour ça j'ai créé un bouton avec une macro dans le VBA de Word.

Voilà ce que j'ai fait :

Dim xlapp as Object
Set xlapp = getObject ( , "Excel.Application")
set xlwbk = xlapp.workbooks("CLIENTS-RECAP.xls")
chemin=xlwbk.worksheets("CLIENTS").activecell

Ca plante sur cette dernière ligne. (méthode non reconnue)

si j'écris
chemin=xlwbk.worksheets("CLIENTS").cells(1,1)

c'est ok et dans chemin j'ai bien le contenu de la cellule(1,1)

Mais l'activecell ne joue pas.

Par conséquent, le repérage de la ligne en cours ne marche pas non plus.
ligne=xlwbk.worksheets("CLIENTS").activecell.row

Comment récupérer la cellule en cours ???

Merci d'avance pour votre aide.

Tilloux.



Avatar
TILLOUX
Non ça ne marche pas.

J'ai fait ça sans structure With

Dim xlApp as Object
Dim xlWbk as object
Set xlApp = getObject ( , "Excel.Application")
Set xlWbk = xlApp.Workbooks("CLIENTS.xls").Worksheets("2008")
x = xlWbk.Cells(1, 1)
y = xlWbk.ActiveCell.Value

Ca plante sur y = ...
alors que x a bien la valeur contenue dans cells(1,1)

L'erreur indiquée est Erreur 431 "Variable Objet ou variable de bloc With
non définie"

Si j'écris y = Activecell.value

J'ai l'erreur 438 (propriété ou méthode non gérée par cet objet)
Ce qui est normal puisqu'on ne fait pas référence à l'objet excel.

Pour l'instant je nage....


"michdenis" a écrit dans le message de news:

Il ne doit pas y avoir de point devant .activecell.value
seulement activecell.value


"TILLOUX" a écrit dans le message de groupe de
discussion :

Merci pour le code. Malheureusement, dans la partie With XlWbk,

Ça plante toujours sur le x= .activecell.value

J'ai Excel 2003.

Ca doit quand même être possible de lire la cellule active !

Si tu trouves une solution, elle sera vraiment la bienvunue.

Merci d'avance.

Tilloux.

"michdenis" a écrit dans le message de news:

Voici un exemple de code :

'------------------------------
Sub test()
Dim Chemin As String, x as variant
Dim Fichier As String, y as variant
Dim XlApp As Object, XlWbk As Object

Chemin = "c:UsersPowerUserDocumentsDenis"
Fichier = "classeur1.xls"

'Test pour s'assurer que le fichier exite
If Dir(Chemin & Fichier) = "" Then
MsgBox "fichier introuvable. Fin des opérations"
Exit Sub
End If
On Error Resume Next
'Instantie la variable xlapp si Excel est ouvert
Set XlApp = GetObject(, "Excel.application")
'Si excel n'est pas ouvert, ça va générer une erreur
If Err.Number <> 0 Then
'Efface l'erreur
Err.Clear
'Création d'une instance d'excel même s'il est fermé
Set XlApp = CreateObject("Excel.Application")
End If
'Rend visible l'application Excel
XlApp.Visible = True 'or False
'Test pour savoir si le fichier est déjà ouvert
Set XlWbk = XlApp.Workbooks(Fichier)
'si le fichier pas ouvert-> erreur
If Err <> 0 Then
Err.Clear
Set XlWbk = XlApp.Workbooks.Open(Chemin & Fichier)
End If
'Pour travailler avec une cellule active d'une feuille
'donnée, cette dernière doit être active
With XlWbk
'Sélectionne la feuille que tu désires
.Worksheets("Feuil2").Select
'Récupére dans la variable x le contenu de la cellule active
x = ActiveCell.Value
'Récupére dans la variable y le chemin et le nom du fichier
'que tu viens d'ouvrir
y = .FullName
End With

'Tu ajoutes une ou 2 lignes de code pour transférer le
'contenu des variables vers ton application Word

'Fermeture du fichier
XlWbk.Close False 'or true si tu veux sauvegarder ou nom
'Fermeture d'excel
XlApp.Quit
'Libère l'espace mémoire des objets
Set XlWbk = Nothing: Set XlApp = Nothing

End Sub
'------------------------------



"TILLOUX" a écrit dans le message de groupe
de
discussion :

Bonjour,

Dans un doc. Excel CLIENTS-RECAP.xls avec une feuille CLIENTS, j'ai la
colonne A qui contient les noms des clients avec leur path.

C'est du style
C:CLIENTSGROSSISTESTOTO
C:CLIENTSGROSSISTESXXXX

ETC.

Je me positionne sur une ligne quelconque (en colonne A) et j'appelle
Word
avec bouton que j'ai fait.

Dans Word je tape un doc. et j'aimerais l'enregistrer dans le path de la
cellule active Excel d'où je viens.

Pour ça j'ai créé un bouton avec une macro dans le VBA de Word.

Voilà ce que j'ai fait :

Dim xlapp as Object
Set xlapp = getObject ( , "Excel.Application")
set xlwbk = xlapp.workbooks("CLIENTS-RECAP.xls")
chemin=xlwbk.worksheets("CLIENTS").activecell

Ca plante sur cette dernière ligne. (méthode non reconnue)

si j'écris
chemin=xlwbk.worksheets("CLIENTS").cells(1,1)

c'est ok et dans chemin j'ai bien le contenu de la cellule(1,1)

Mais l'activecell ne joue pas.

Par conséquent, le repérage de la ligne en cours ne marche pas non plus.
ligne=xlwbk.worksheets("CLIENTS").activecell.row

Comment récupérer la cellule en cours ???

Merci d'avance pour votre aide.

Tilloux.






Avatar
michdenis
Si tu prenais le temps de lire la procédure soumise, je t'ai écrit
que la feuille doit ÊTRE ACTIVE POUR UTILISER ACTIVECELL.

ACTIVECELL NE PREND PAS DE POINT DEVANT ET SI TU VEUX UTILISER UN OBJET DEVANT
CE DOIT ÊTRE L'APPLICATION ELLE-MÊME OU UNE VARIABLE OBJET QUI LA REPRÉSENTE.

L'aide d'excel dit :
Application.ActiveCell, propriété
Cette propriété renvoie un objet Range qui représente la cellule active de la fenêtre
active (celle qui se trouve au premier plan) ou de la fenêtre spécifiée. Si la fenêtre
n'affiche aucune feuille de calcul, cette propriété échoue. En lecture seule.

Cette façon de faire suppose que l'application est obligatoirement ouvert
ainsi que ton classeur Clients.xls

Set xlApp = getObject ( , "Excel.Application")
Set xlWbk = xlApp.Workbooks("CLIENTS.xls").Worksheets("2008")
xlWbk.Select
x = xlWbk.Cells(1, 1)
y = ActiveCell.Value '


"TILLOUX" a écrit dans le message de groupe de discussion :
#
Non ça ne marche pas.

J'ai fait ça sans structure With

Dim xlApp as Object
Dim xlWbk as object
Set xlApp = getObject ( , "Excel.Application")
Set xlWbk = xlApp.Workbooks("CLIENTS.xls").Worksheets("2008")
x = xlWbk.Cells(1, 1)
y = xlWbk.ActiveCell.Value

Ca plante sur y = ...
alors que x a bien la valeur contenue dans cells(1,1)

L'erreur indiquée est Erreur 431 "Variable Objet ou variable de bloc With
non définie"

Si j'écris y = Activecell.value

J'ai l'erreur 438 (propriété ou méthode non gérée par cet objet)
Ce qui est normal puisqu'on ne fait pas référence à l'objet excel.

Pour l'instant je nage....


"michdenis" a écrit dans le message de news:

Il ne doit pas y avoir de point devant .activecell.value
seulement activecell.value


"TILLOUX" a écrit dans le message de groupe de
discussion :

Merci pour le code. Malheureusement, dans la partie With XlWbk,

Ça plante toujours sur le x= .activecell.value

J'ai Excel 2003.

Ca doit quand même être possible de lire la cellule active !

Si tu trouves une solution, elle sera vraiment la bienvunue.

Merci d'avance.

Tilloux.

"michdenis" a écrit dans le message de news:

Voici un exemple de code :

'------------------------------
Sub test()
Dim Chemin As String, x as variant
Dim Fichier As String, y as variant
Dim XlApp As Object, XlWbk As Object

Chemin = "c:UsersPowerUserDocumentsDenis"
Fichier = "classeur1.xls"

'Test pour s'assurer que le fichier exite
If Dir(Chemin & Fichier) = "" Then
MsgBox "fichier introuvable. Fin des opérations"
Exit Sub
End If
On Error Resume Next
'Instantie la variable xlapp si Excel est ouvert
Set XlApp = GetObject(, "Excel.application")
'Si excel n'est pas ouvert, ça va générer une erreur
If Err.Number <> 0 Then
'Efface l'erreur
Err.Clear
'Création d'une instance d'excel même s'il est fermé
Set XlApp = CreateObject("Excel.Application")
End If
'Rend visible l'application Excel
XlApp.Visible = True 'or False
'Test pour savoir si le fichier est déjà ouvert
Set XlWbk = XlApp.Workbooks(Fichier)
'si le fichier pas ouvert-> erreur
If Err <> 0 Then
Err.Clear
Set XlWbk = XlApp.Workbooks.Open(Chemin & Fichier)
End If
'Pour travailler avec une cellule active d'une feuille
'donnée, cette dernière doit être active
With XlWbk
'Sélectionne la feuille que tu désires
.Worksheets("Feuil2").Select
'Récupére dans la variable x le contenu de la cellule active
x = ActiveCell.Value
'Récupére dans la variable y le chemin et le nom du fichier
'que tu viens d'ouvrir
y = .FullName
End With

'Tu ajoutes une ou 2 lignes de code pour transférer le
'contenu des variables vers ton application Word

'Fermeture du fichier
XlWbk.Close False 'or true si tu veux sauvegarder ou nom
'Fermeture d'excel
XlApp.Quit
'Libère l'espace mémoire des objets
Set XlWbk = Nothing: Set XlApp = Nothing

End Sub
'------------------------------



"TILLOUX" a écrit dans le message de groupe
de
discussion :

Bonjour,

Dans un doc. Excel CLIENTS-RECAP.xls avec une feuille CLIENTS, j'ai la
colonne A qui contient les noms des clients avec leur path.

C'est du style
C:CLIENTSGROSSISTESTOTO
C:CLIENTSGROSSISTESXXXX

ETC.

Je me positionne sur une ligne quelconque (en colonne A) et j'appelle
Word
avec bouton que j'ai fait.

Dans Word je tape un doc. et j'aimerais l'enregistrer dans le path de la
cellule active Excel d'où je viens.

Pour ça j'ai créé un bouton avec une macro dans le VBA de Word.

Voilà ce que j'ai fait :

Dim xlapp as Object
Set xlapp = getObject ( , "Excel.Application")
set xlwbk = xlapp.workbooks("CLIENTS-RECAP.xls")
chemin=xlwbk.worksheets("CLIENTS").activecell

Ca plante sur cette dernière ligne. (méthode non reconnue)

si j'écris
chemin=xlwbk.worksheets("CLIENTS").cells(1,1)

c'est ok et dans chemin j'ai bien le contenu de la cellule(1,1)

Mais l'activecell ne joue pas.

Par conséquent, le repérage de la ligne en cours ne marche pas non plus.
ligne=xlwbk.worksheets("CLIENTS").activecell.row

Comment récupérer la cellule en cours ???

Merci d'avance pour votre aide.

Tilloux.






Avatar
TILLOUX
Je n'ai pas été très attentif mais maintenant c'est parfaitement clair.

Merci pour ton aide précieuse.

Tilloux.
"michdenis" a écrit dans le message de news:

Si tu prenais le temps de lire la procédure soumise, je t'ai écrit
que la feuille doit ÊTRE ACTIVE POUR UTILISER ACTIVECELL.

ACTIVECELL NE PREND PAS DE POINT DEVANT ET SI TU VEUX UTILISER UN OBJET
DEVANT
CE DOIT ÊTRE L'APPLICATION ELLE-MÊME OU UNE VARIABLE OBJET QUI LA
REPRÉSENTE.

L'aide d'excel dit :
Application.ActiveCell, propriété
Cette propriété renvoie un objet Range qui représente la cellule active de
la fenêtre
active (celle qui se trouve au premier plan) ou de la fenêtre spécifiée.
Si la fenêtre
n'affiche aucune feuille de calcul, cette propriété échoue. En lecture
seule.

Cette façon de faire suppose que l'application est obligatoirement ouvert
ainsi que ton classeur Clients.xls

Set xlApp = getObject ( , "Excel.Application")
Set xlWbk = xlApp.Workbooks("CLIENTS.xls").Worksheets("2008")
xlWbk.Select
x = xlWbk.Cells(1, 1)
y = ActiveCell.Value '


"TILLOUX" a écrit dans le message de groupe de
discussion :
#
Non ça ne marche pas.

J'ai fait ça sans structure With

Dim xlApp as Object
Dim xlWbk as object
Set xlApp = getObject ( , "Excel.Application")
Set xlWbk = xlApp.Workbooks("CLIENTS.xls").Worksheets("2008")
x = xlWbk.Cells(1, 1)
y = xlWbk.ActiveCell.Value

Ca plante sur y = ...
alors que x a bien la valeur contenue dans cells(1,1)

L'erreur indiquée est Erreur 431 "Variable Objet ou variable de bloc With
non définie"

Si j'écris y = Activecell.value

J'ai l'erreur 438 (propriété ou méthode non gérée par cet objet)
Ce qui est normal puisqu'on ne fait pas référence à l'objet excel.

Pour l'instant je nage....


"michdenis" a écrit dans le message de news:

Il ne doit pas y avoir de point devant .activecell.value
seulement activecell.value


"TILLOUX" a écrit dans le message de groupe
de
discussion :

Merci pour le code. Malheureusement, dans la partie With XlWbk,

Ça plante toujours sur le x= .activecell.value

J'ai Excel 2003.

Ca doit quand même être possible de lire la cellule active !

Si tu trouves une solution, elle sera vraiment la bienvunue.

Merci d'avance.

Tilloux.

"michdenis" a écrit dans le message de news:

Voici un exemple de code :

'------------------------------
Sub test()
Dim Chemin As String, x as variant
Dim Fichier As String, y as variant
Dim XlApp As Object, XlWbk As Object

Chemin = "c:UsersPowerUserDocumentsDenis"
Fichier = "classeur1.xls"

'Test pour s'assurer que le fichier exite
If Dir(Chemin & Fichier) = "" Then
MsgBox "fichier introuvable. Fin des opérations"
Exit Sub
End If
On Error Resume Next
'Instantie la variable xlapp si Excel est ouvert
Set XlApp = GetObject(, "Excel.application")
'Si excel n'est pas ouvert, ça va générer une erreur
If Err.Number <> 0 Then
'Efface l'erreur
Err.Clear
'Création d'une instance d'excel même s'il est fermé
Set XlApp = CreateObject("Excel.Application")
End If
'Rend visible l'application Excel
XlApp.Visible = True 'or False
'Test pour savoir si le fichier est déjà ouvert
Set XlWbk = XlApp.Workbooks(Fichier)
'si le fichier pas ouvert-> erreur
If Err <> 0 Then
Err.Clear
Set XlWbk = XlApp.Workbooks.Open(Chemin & Fichier)
End If
'Pour travailler avec une cellule active d'une feuille
'donnée, cette dernière doit être active
With XlWbk
'Sélectionne la feuille que tu désires
.Worksheets("Feuil2").Select
'Récupére dans la variable x le contenu de la cellule active
x = ActiveCell.Value
'Récupére dans la variable y le chemin et le nom du fichier
'que tu viens d'ouvrir
y = .FullName
End With

'Tu ajoutes une ou 2 lignes de code pour transférer le
'contenu des variables vers ton application Word

'Fermeture du fichier
XlWbk.Close False 'or true si tu veux sauvegarder ou nom
'Fermeture d'excel
XlApp.Quit
'Libère l'espace mémoire des objets
Set XlWbk = Nothing: Set XlApp = Nothing

End Sub
'------------------------------



"TILLOUX" a écrit dans le message de groupe
de
discussion :

Bonjour,

Dans un doc. Excel CLIENTS-RECAP.xls avec une feuille CLIENTS, j'ai la
colonne A qui contient les noms des clients avec leur path.

C'est du style
C:CLIENTSGROSSISTESTOTO
C:CLIENTSGROSSISTESXXXX

ETC.

Je me positionne sur une ligne quelconque (en colonne A) et j'appelle
Word
avec bouton que j'ai fait.

Dans Word je tape un doc. et j'aimerais l'enregistrer dans le path de la
cellule active Excel d'où je viens.

Pour ça j'ai créé un bouton avec une macro dans le VBA de Word.

Voilà ce que j'ai fait :

Dim xlapp as Object
Set xlapp = getObject ( , "Excel.Application")
set xlwbk = xlapp.workbooks("CLIENTS-RECAP.xls")
chemin=xlwbk.worksheets("CLIENTS").activecell

Ca plante sur cette dernière ligne. (méthode non reconnue)

si j'écris
chemin=xlwbk.worksheets("CLIENTS").cells(1,1)

c'est ok et dans chemin j'ai bien le contenu de la cellule(1,1)

Mais l'activecell ne joue pas.

Par conséquent, le repérage de la ligne en cours ne marche pas non plus.
ligne=xlwbk.worksheets("CLIENTS").activecell.row

Comment récupérer la cellule en cours ???

Merci d'avance pour votre aide.

Tilloux.