Comment lire l'activecell depuis Word ?

Le
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: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.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
michdenis
Le #18684921
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"
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.
TILLOUX
Le #18685941
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"
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" 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.



michdenis
Le #18686171
Il ne doit pas y avoir de point devant .activecell.value
seulement activecell.value


"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"
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" 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.



TILLOUX
Le #18687801
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"
Il ne doit pas y avoir de point devant .activecell.value
seulement activecell.value


"TILLOUX" 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"
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" 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.






michdenis
Le #18689841
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" #
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"
Il ne doit pas y avoir de point devant .activecell.value
seulement activecell.value


"TILLOUX" 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"
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" 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.






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

Merci pour ton aide précieuse.

Tilloux.
"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" 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"
Il ne doit pas y avoir de point devant .activecell.value
seulement activecell.value


"TILLOUX" 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"
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" 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.









Publicité
Poster une réponse
Anonyme