CAP,
apparemment ça marche pour l'auto open
Mias il me reste un pb qui m'a rappelé pourquoi j'utilise la macro
d'insertion dans les fichiers XL:
En fait, la liaison qu'on a créee fonctionne avec un fichier XL placé
toujours au même endroit
Moi mon pb, est que ce fichier de base (fiche info affaire) est
selectionné
puis copié dans un autre repertoire, par les utilisateurs
Donc la syntaxe de la liason ne fonctionnera plus
Les macros test et getvalues permettent d'insérer les données d'un fichier
même s'il a changé de place, à condition que le fichier qui récupère les
données soit placé lui aussi dans ce repertoire, ce que je fais par macro.
En fait, il faudrait que je trouve un code qui fasse l'équivalent
j'en avais trouvé un sur developpez-com mais ça bug
je te le joins a tout hasard:
Sub donneeAvecExcel()
'Déclaration des variables
Dim xlApp As Excel.Application
Dim xlWb As Excel.Workbook
Dim xlSh As Excel.Worksheet
Dim iR As Integer
Dim iC As Integer
Dim i As Integer, j As Integer
'Affectation des données aux variables
Set xlApp = New Excel.Application
Set xlWb = xlApp.Workbooks.Open("S:AffairesLeroy GO30208f-
Q.S.Efiche
info affaire.xls")
Set xlSh = xlWb.Worksheets(1)
'Récupération du nombre de lignes et de colonnes
iR = xlSh.UsedRange.Rows.Count
iC = xlSh.UsedRange.Columns.Count
'Boucle pour adresser les cellules contenant des données
'en excluant la première ligne qui contient les titres
For i = 5 To iR
For j = 1 To iC
Debug.Print xlSh.Cells(i, j)
Next j
Next i
xlWb.Close
xlApp.Quit
Set xlSh = Nothing
Set xlWb = Nothing
Set xlApp = Nothing
End Sub
merci
--
en VBA aussi, ne remettons pas au lendemain ce qu'on peut faire
aujourd'hui,
mais à chaque jour suffit sa peine...
CAP,
apparemment ça marche pour l'auto open
Mias il me reste un pb qui m'a rappelé pourquoi j'utilise la macro
d'insertion dans les fichiers XL:
En fait, la liaison qu'on a créee fonctionne avec un fichier XL placé
toujours au même endroit
Moi mon pb, est que ce fichier de base (fiche info affaire) est
selectionné
puis copié dans un autre repertoire, par les utilisateurs
Donc la syntaxe de la liason ne fonctionnera plus
Les macros test et getvalues permettent d'insérer les données d'un fichier
même s'il a changé de place, à condition que le fichier qui récupère les
données soit placé lui aussi dans ce repertoire, ce que je fais par macro.
En fait, il faudrait que je trouve un code qui fasse l'équivalent
j'en avais trouvé un sur developpez-com mais ça bug
je te le joins a tout hasard:
Sub donneeAvecExcel()
'Déclaration des variables
Dim xlApp As Excel.Application
Dim xlWb As Excel.Workbook
Dim xlSh As Excel.Worksheet
Dim iR As Integer
Dim iC As Integer
Dim i As Integer, j As Integer
'Affectation des données aux variables
Set xlApp = New Excel.Application
Set xlWb = xlApp.Workbooks.Open("S:AffairesLeroy GO30208f-
Q.S.Efiche
info affaire.xls")
Set xlSh = xlWb.Worksheets(1)
'Récupération du nombre de lignes et de colonnes
iR = xlSh.UsedRange.Rows.Count
iC = xlSh.UsedRange.Columns.Count
'Boucle pour adresser les cellules contenant des données
'en excluant la première ligne qui contient les titres
For i = 5 To iR
For j = 1 To iC
Debug.Print xlSh.Cells(i, j)
Next j
Next i
xlWb.Close
xlApp.Quit
Set xlSh = Nothing
Set xlWb = Nothing
Set xlApp = Nothing
End Sub
merci
--
en VBA aussi, ne remettons pas au lendemain ce qu'on peut faire
aujourd'hui,
mais à chaque jour suffit sa peine...
CAP,
apparemment ça marche pour l'auto open
Mias il me reste un pb qui m'a rappelé pourquoi j'utilise la macro
d'insertion dans les fichiers XL:
En fait, la liaison qu'on a créee fonctionne avec un fichier XL placé
toujours au même endroit
Moi mon pb, est que ce fichier de base (fiche info affaire) est
selectionné
puis copié dans un autre repertoire, par les utilisateurs
Donc la syntaxe de la liason ne fonctionnera plus
Les macros test et getvalues permettent d'insérer les données d'un fichier
même s'il a changé de place, à condition que le fichier qui récupère les
données soit placé lui aussi dans ce repertoire, ce que je fais par macro.
En fait, il faudrait que je trouve un code qui fasse l'équivalent
j'en avais trouvé un sur developpez-com mais ça bug
je te le joins a tout hasard:
Sub donneeAvecExcel()
'Déclaration des variables
Dim xlApp As Excel.Application
Dim xlWb As Excel.Workbook
Dim xlSh As Excel.Worksheet
Dim iR As Integer
Dim iC As Integer
Dim i As Integer, j As Integer
'Affectation des données aux variables
Set xlApp = New Excel.Application
Set xlWb = xlApp.Workbooks.Open("S:AffairesLeroy GO30208f-
Q.S.Efiche
info affaire.xls")
Set xlSh = xlWb.Worksheets(1)
'Récupération du nombre de lignes et de colonnes
iR = xlSh.UsedRange.Rows.Count
iC = xlSh.UsedRange.Columns.Count
'Boucle pour adresser les cellules contenant des données
'en excluant la première ligne qui contient les titres
For i = 5 To iR
For j = 1 To iC
Debug.Print xlSh.Cells(i, j)
Next j
Next i
xlWb.Close
xlApp.Quit
Set xlSh = Nothing
Set xlWb = Nothing
Set xlApp = Nothing
End Sub
merci
--
en VBA aussi, ne remettons pas au lendemain ce qu'on peut faire
aujourd'hui,
mais à chaque jour suffit sa peine...
Salut,
y'a un truc qui m'échappe : Tes macros GetValuesFromAWorkbook et Test sont
des macros EXCEL qui vont travailler avec le fichier EXCEL ouvert pour
récupérer des données. Mais il faut justement que ton fichier EXCEL soit
ouvert, et tu disait sur l'un de tes premiers posts que tu voulais lancer la
mise à jour à l'ouverture de Word, sans avoir à ouvrir le fichier EXCEL !!
Quant à ton dernier code, il va pas non plus, puisqu'il fait un Set xlWb =
xlApp.Workbooks.Open("S:AffairesLeroy GO30208f- Q.S.Efiche info
affaire.xls") et donc il est lié à ce chemin là, tout comme mes codes de
champs.
Alors on fait quoi ? On ouvre EXCEL, on ne l'ouvre pas ??
Parceque si on l'ouvre, le tout premier code en 2 macros que je t'ai fourni
va bien (en remplaçant juste Range("A1").Copy par Range("H8:H10").Copy dans
la macro Entete
??
CAP2
"gilles" a écrit dans le message de news:
> CAP,
> apparemment ça marche pour l'auto open
> Mias il me reste un pb qui m'a rappelé pourquoi j'utilise la macro
> d'insertion dans les fichiers XL:
> En fait, la liaison qu'on a créee fonctionne avec un fichier XL placé
> toujours au même endroit
> Moi mon pb, est que ce fichier de base (fiche info affaire) est
> selectionné
> puis copié dans un autre repertoire, par les utilisateurs
> Donc la syntaxe de la liason ne fonctionnera plus
> Les macros test et getvalues permettent d'insérer les données d'un fichier
> même s'il a changé de place, à condition que le fichier qui récupère les
> données soit placé lui aussi dans ce repertoire, ce que je fais par macro.
> En fait, il faudrait que je trouve un code qui fasse l'équivalent
> j'en avais trouvé un sur developpez-com mais ça bug
> je te le joins a tout hasard:
>
> Sub donneeAvecExcel()
> 'Déclaration des variables
> Dim xlApp As Excel.Application
> Dim xlWb As Excel.Workbook
> Dim xlSh As Excel.Worksheet
> Dim iR As Integer
> Dim iC As Integer
> Dim i As Integer, j As Integer
>
>
> 'Affectation des données aux variables
> Set xlApp = New Excel.Application
> Set xlWb = xlApp.Workbooks.Open("S:AffairesLeroy GO30208f-
> Q.S.Efiche
> info affaire.xls")
> Set xlSh = xlWb.Worksheets(1)
> 'Récupération du nombre de lignes et de colonnes
> iR = xlSh.UsedRange.Rows.Count
> iC = xlSh.UsedRange.Columns.Count
> 'Boucle pour adresser les cellules contenant des données
> 'en excluant la première ligne qui contient les titres
> For i = 5 To iR
> For j = 1 To iC
> Debug.Print xlSh.Cells(i, j)
> Next j
> Next i
>
>
> xlWb.Close
> xlApp.Quit
> Set xlSh = Nothing
> Set xlWb = Nothing
> Set xlApp = Nothing
>
>
> End Sub
>
> merci
> --
> en VBA aussi, ne remettons pas au lendemain ce qu'on peut faire
> aujourd'hui,
> mais à chaque jour suffit sa peine...
>
>
>
Salut,
y'a un truc qui m'échappe : Tes macros GetValuesFromAWorkbook et Test sont
des macros EXCEL qui vont travailler avec le fichier EXCEL ouvert pour
récupérer des données. Mais il faut justement que ton fichier EXCEL soit
ouvert, et tu disait sur l'un de tes premiers posts que tu voulais lancer la
mise à jour à l'ouverture de Word, sans avoir à ouvrir le fichier EXCEL !!
Quant à ton dernier code, il va pas non plus, puisqu'il fait un Set xlWb =
xlApp.Workbooks.Open("S:AffairesLeroy GO30208f- Q.S.Efiche info
affaire.xls") et donc il est lié à ce chemin là, tout comme mes codes de
champs.
Alors on fait quoi ? On ouvre EXCEL, on ne l'ouvre pas ??
Parceque si on l'ouvre, le tout premier code en 2 macros que je t'ai fourni
va bien (en remplaçant juste Range("A1").Copy par Range("H8:H10").Copy dans
la macro Entete
??
CAP2
"gilles" <gilles@discussions.microsoft.com> a écrit dans le message de news:
EBFDEC4F-0085-4018-BCC8-08DA7DAC8E23@microsoft.com...
> CAP,
> apparemment ça marche pour l'auto open
> Mias il me reste un pb qui m'a rappelé pourquoi j'utilise la macro
> d'insertion dans les fichiers XL:
> En fait, la liaison qu'on a créee fonctionne avec un fichier XL placé
> toujours au même endroit
> Moi mon pb, est que ce fichier de base (fiche info affaire) est
> selectionné
> puis copié dans un autre repertoire, par les utilisateurs
> Donc la syntaxe de la liason ne fonctionnera plus
> Les macros test et getvalues permettent d'insérer les données d'un fichier
> même s'il a changé de place, à condition que le fichier qui récupère les
> données soit placé lui aussi dans ce repertoire, ce que je fais par macro.
> En fait, il faudrait que je trouve un code qui fasse l'équivalent
> j'en avais trouvé un sur developpez-com mais ça bug
> je te le joins a tout hasard:
>
> Sub donneeAvecExcel()
> 'Déclaration des variables
> Dim xlApp As Excel.Application
> Dim xlWb As Excel.Workbook
> Dim xlSh As Excel.Worksheet
> Dim iR As Integer
> Dim iC As Integer
> Dim i As Integer, j As Integer
>
>
> 'Affectation des données aux variables
> Set xlApp = New Excel.Application
> Set xlWb = xlApp.Workbooks.Open("S:AffairesLeroy GO30208f-
> Q.S.Efiche
> info affaire.xls")
> Set xlSh = xlWb.Worksheets(1)
> 'Récupération du nombre de lignes et de colonnes
> iR = xlSh.UsedRange.Rows.Count
> iC = xlSh.UsedRange.Columns.Count
> 'Boucle pour adresser les cellules contenant des données
> 'en excluant la première ligne qui contient les titres
> For i = 5 To iR
> For j = 1 To iC
> Debug.Print xlSh.Cells(i, j)
> Next j
> Next i
>
>
> xlWb.Close
> xlApp.Quit
> Set xlSh = Nothing
> Set xlWb = Nothing
> Set xlApp = Nothing
>
>
> End Sub
>
> merci
> --
> en VBA aussi, ne remettons pas au lendemain ce qu'on peut faire
> aujourd'hui,
> mais à chaque jour suffit sa peine...
>
>
>
Salut,
y'a un truc qui m'échappe : Tes macros GetValuesFromAWorkbook et Test sont
des macros EXCEL qui vont travailler avec le fichier EXCEL ouvert pour
récupérer des données. Mais il faut justement que ton fichier EXCEL soit
ouvert, et tu disait sur l'un de tes premiers posts que tu voulais lancer la
mise à jour à l'ouverture de Word, sans avoir à ouvrir le fichier EXCEL !!
Quant à ton dernier code, il va pas non plus, puisqu'il fait un Set xlWb =
xlApp.Workbooks.Open("S:AffairesLeroy GO30208f- Q.S.Efiche info
affaire.xls") et donc il est lié à ce chemin là, tout comme mes codes de
champs.
Alors on fait quoi ? On ouvre EXCEL, on ne l'ouvre pas ??
Parceque si on l'ouvre, le tout premier code en 2 macros que je t'ai fourni
va bien (en remplaçant juste Range("A1").Copy par Range("H8:H10").Copy dans
la macro Entete
??
CAP2
"gilles" a écrit dans le message de news:
> CAP,
> apparemment ça marche pour l'auto open
> Mias il me reste un pb qui m'a rappelé pourquoi j'utilise la macro
> d'insertion dans les fichiers XL:
> En fait, la liaison qu'on a créee fonctionne avec un fichier XL placé
> toujours au même endroit
> Moi mon pb, est que ce fichier de base (fiche info affaire) est
> selectionné
> puis copié dans un autre repertoire, par les utilisateurs
> Donc la syntaxe de la liason ne fonctionnera plus
> Les macros test et getvalues permettent d'insérer les données d'un fichier
> même s'il a changé de place, à condition que le fichier qui récupère les
> données soit placé lui aussi dans ce repertoire, ce que je fais par macro.
> En fait, il faudrait que je trouve un code qui fasse l'équivalent
> j'en avais trouvé un sur developpez-com mais ça bug
> je te le joins a tout hasard:
>
> Sub donneeAvecExcel()
> 'Déclaration des variables
> Dim xlApp As Excel.Application
> Dim xlWb As Excel.Workbook
> Dim xlSh As Excel.Worksheet
> Dim iR As Integer
> Dim iC As Integer
> Dim i As Integer, j As Integer
>
>
> 'Affectation des données aux variables
> Set xlApp = New Excel.Application
> Set xlWb = xlApp.Workbooks.Open("S:AffairesLeroy GO30208f-
> Q.S.Efiche
> info affaire.xls")
> Set xlSh = xlWb.Worksheets(1)
> 'Récupération du nombre de lignes et de colonnes
> iR = xlSh.UsedRange.Rows.Count
> iC = xlSh.UsedRange.Columns.Count
> 'Boucle pour adresser les cellules contenant des données
> 'en excluant la première ligne qui contient les titres
> For i = 5 To iR
> For j = 1 To iC
> Debug.Print xlSh.Cells(i, j)
> Next j
> Next i
>
>
> xlWb.Close
> xlApp.Quit
> Set xlSh = Nothing
> Set xlWb = Nothing
> Set xlApp = Nothing
>
>
> End Sub
>
> merci
> --
> en VBA aussi, ne remettons pas au lendemain ce qu'on peut faire
> aujourd'hui,
> mais à chaque jour suffit sa peine...
>
>
>
Bon,
j'avance bien, on va procéder par étapes :
Partant du principe que tes utilsateurs vont avoir un dossier contenant
plein de fichiers, dont Fiche info affaire.xls, et des fichiers WORD où tu
veux récupérer les valeurs des cellule H8 à H10, tu vs créer un doc WORD
vierge dans ton dossier où il y a tout...
Et sur son Open, tu mets ce code (le code cherche le nom du dossier en
cours, part à la recherche de Fiche info affaire.xls et de ses cellules H8 à
H10 dans ce dossier, et fait crée mon code de champs. C'est une première
étape, parce qu'ensuite il faudra automatiser le positionnement du code là
où tu le veux. Tu me diras ça après. Tente déjà ce code) :
Private Sub Document_Open()
Dim dossier
Dim lien As String
Dim final As String
dossier = Replace(ActiveDocument.Path, "", "")
lien = Chr(34) & dossier & "Fiche info affaire.xls" & Chr(34)
final = "LINK Excel.Sheet.8 " & lien & " fiche!L8C8:L10C8 t "
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:=final
Selection.Fields.Update
End Sub
Ca donne quoi ? Chez moi, ça marche bien !
CAP2
Bon,
j'avance bien, on va procéder par étapes :
Partant du principe que tes utilsateurs vont avoir un dossier contenant
plein de fichiers, dont Fiche info affaire.xls, et des fichiers WORD où tu
veux récupérer les valeurs des cellule H8 à H10, tu vs créer un doc WORD
vierge dans ton dossier où il y a tout...
Et sur son Open, tu mets ce code (le code cherche le nom du dossier en
cours, part à la recherche de Fiche info affaire.xls et de ses cellules H8 à
H10 dans ce dossier, et fait crée mon code de champs. C'est une première
étape, parce qu'ensuite il faudra automatiser le positionnement du code là
où tu le veux. Tu me diras ça après. Tente déjà ce code) :
Private Sub Document_Open()
Dim dossier
Dim lien As String
Dim final As String
dossier = Replace(ActiveDocument.Path, "", "\")
lien = Chr(34) & dossier & "\Fiche info affaire.xls" & Chr(34)
final = "LINK Excel.Sheet.8 " & lien & " fiche!L8C8:L10C8 t "
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:=final
Selection.Fields.Update
End Sub
Ca donne quoi ? Chez moi, ça marche bien !
CAP2
Bon,
j'avance bien, on va procéder par étapes :
Partant du principe que tes utilsateurs vont avoir un dossier contenant
plein de fichiers, dont Fiche info affaire.xls, et des fichiers WORD où tu
veux récupérer les valeurs des cellule H8 à H10, tu vs créer un doc WORD
vierge dans ton dossier où il y a tout...
Et sur son Open, tu mets ce code (le code cherche le nom du dossier en
cours, part à la recherche de Fiche info affaire.xls et de ses cellules H8 à
H10 dans ce dossier, et fait crée mon code de champs. C'est une première
étape, parce qu'ensuite il faudra automatiser le positionnement du code là
où tu le veux. Tu me diras ça après. Tente déjà ce code) :
Private Sub Document_Open()
Dim dossier
Dim lien As String
Dim final As String
dossier = Replace(ActiveDocument.Path, "", "")
lien = Chr(34) & dossier & "Fiche info affaire.xls" & Chr(34)
final = "LINK Excel.Sheet.8 " & lien & " fiche!L8C8:L10C8 t "
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:=final
Selection.Fields.Update
End Sub
Ca donne quoi ? Chez moi, ça marche bien !
CAP2