recherche de la dernière cellule pour lecture fichier fermé
2 réponses
Antoine76
Bonjour
J'essaie de créer un programme qui centralise des données issues d'autres
fichiers sans pour autant les ouvrir.
Le programme va donc chercher la valeur de cellules sur 8 colonnes et sur un
nombre variable de ligne dans tous les fichiers
d'un même dossier. Avec l'aide de Modeste et JB, je me suis inspiré de
programmes d'Excelabo : cfge-lireferme(
http://www.excelabo.net/moteurs/compteclic.php?nom=fcgd-lireferme). Là où je
ne sais pas comment adapté cette lecture en fichier fermé, c'est pour
définir la dernière cellule (= la dernière ligne) de ce fichier au niveau de
ma boucle de capture, sur la variable nl, du programme ci-après :
Dim P As String, F As String, S As String, A As String, R As Byte
Dim lig, nl, k As Byte
P = "C:\Mes documents\essai"
F = "arrêt ZAZA.xls"
S = "Sommaire"
lig = 2
For nl = 3 To 100 '''''''''''''' à remplacer par [C65000].End(xlUp).Row
du fichier ZAZA / que je n'arrive pas à intégrer
lig = lig + 1
For k = 1 To 8
A = Cells(nl, k).Address
Cells(lig, k + 1).Value = "='" & P & "\[" & F & "]" & S & "'!" &
Range(A) _
.Range("A1").Address(, , xlR1C1)
Next k
Next nl
Je ne sais pas si c'est possible de détecter la dernière celluleou rang en
lecture cachée.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Youky
Salut Antoine comme je connais un peu tes fichiers j'ai mis directement certaines variables tu dois enregistrer le fichier avant de lancer cette macro. La macro n'est pas trés rapide mais ca marche Youky Sub Macro1() Dim a(8) Dim Fichier As String, Feuille As String, chem As String chem = ActiveWorkbook.Path Fichier = chem & "" & "Formulaires Arrêt de travail.xls" Feuille = "Sommaire" With CreateObject("Excel.Application").Workbooks.Open(Fichier) lig = .Worksheets(Feuille).[C65000].End(xlUp).Row For Col = 1 To 8 a(Col) = .Worksheets(Feuille).Cells(lig, Col) Next .Close False End With For Col = 1 To 8 Feuil1.Cells(2, Col) = a(Col) Next End Sub
"Antoine76" a écrit dans le message de news:
Bonjour
J'essaie de créer un programme qui centralise des données issues d'autres fichiers sans pour autant les ouvrir. Le programme va donc chercher la valeur de cellules sur 8 colonnes et sur un nombre variable de ligne dans tous les fichiers d'un même dossier. Avec l'aide de Modeste et JB, je me suis inspiré de programmes d'Excelabo : cfge-lireferme( http://www.excelabo.net/moteurs/compteclic.php?nomügd-lireferme). Là où je ne sais pas comment adapté cette lecture en fichier fermé, c'est pour définir la dernière cellule (= la dernière ligne) de ce fichier au niveau de ma boucle de capture, sur la variable nl, du programme ci-après :
Dim P As String, F As String, S As String, A As String, R As Byte Dim lig, nl, k As Byte P = "C:Mes documentsessai" F = "arrêt ZAZA.xls" S = "Sommaire" lig = 2 For nl = 3 To 100 '''''''''''''' à remplacer par [C65000].End(xlUp).Row du fichier ZAZA / que je n'arrive pas à intégrer lig = lig + 1 For k = 1 To 8 A = Cells(nl, k).Address Cells(lig, k + 1).Value = "='" & P & "[" & F & "]" & S & "'!" & Range(A) _ .Range("A1").Address(, , xlR1C1) Next k Next nl
Je ne sais pas si c'est possible de détecter la dernière celluleou rang en lecture cachée.
Merci à tous
Antoine
Salut Antoine
comme je connais un peu tes fichiers j'ai mis directement certaines
variables
tu dois enregistrer le fichier avant de lancer cette macro.
La macro n'est pas trés rapide mais ca marche
Youky
Sub Macro1()
Dim a(8)
Dim Fichier As String, Feuille As String, chem As String
chem = ActiveWorkbook.Path
Fichier = chem & "" & "Formulaires Arrêt de travail.xls"
Feuille = "Sommaire"
With CreateObject("Excel.Application").Workbooks.Open(Fichier)
lig = .Worksheets(Feuille).[C65000].End(xlUp).Row
For Col = 1 To 8
a(Col) = .Worksheets(Feuille).Cells(lig, Col)
Next
.Close False
End With
For Col = 1 To 8
Feuil1.Cells(2, Col) = a(Col)
Next
End Sub
"Antoine76" <awerel@mageos.com> a écrit dans le message de news:
uPfZxvbGGHA.1628@TK2MSFTNGP12.phx.gbl...
Bonjour
J'essaie de créer un programme qui centralise des données issues d'autres
fichiers sans pour autant les ouvrir.
Le programme va donc chercher la valeur de cellules sur 8 colonnes et sur
un
nombre variable de ligne dans tous les fichiers
d'un même dossier. Avec l'aide de Modeste et JB, je me suis inspiré de
programmes d'Excelabo : cfge-lireferme(
http://www.excelabo.net/moteurs/compteclic.php?nomügd-lireferme). Là où
je
ne sais pas comment adapté cette lecture en fichier fermé, c'est pour
définir la dernière cellule (= la dernière ligne) de ce fichier au niveau
de
ma boucle de capture, sur la variable nl, du programme ci-après :
Dim P As String, F As String, S As String, A As String, R As Byte
Dim lig, nl, k As Byte
P = "C:Mes documentsessai"
F = "arrêt ZAZA.xls"
S = "Sommaire"
lig = 2
For nl = 3 To 100 '''''''''''''' à remplacer par [C65000].End(xlUp).Row
du fichier ZAZA / que je n'arrive pas à intégrer
lig = lig + 1
For k = 1 To 8
A = Cells(nl, k).Address
Cells(lig, k + 1).Value = "='" & P & "[" & F & "]" & S & "'!" &
Range(A) _
.Range("A1").Address(, , xlR1C1)
Next k
Next nl
Je ne sais pas si c'est possible de détecter la dernière celluleou rang en
lecture cachée.
Salut Antoine comme je connais un peu tes fichiers j'ai mis directement certaines variables tu dois enregistrer le fichier avant de lancer cette macro. La macro n'est pas trés rapide mais ca marche Youky Sub Macro1() Dim a(8) Dim Fichier As String, Feuille As String, chem As String chem = ActiveWorkbook.Path Fichier = chem & "" & "Formulaires Arrêt de travail.xls" Feuille = "Sommaire" With CreateObject("Excel.Application").Workbooks.Open(Fichier) lig = .Worksheets(Feuille).[C65000].End(xlUp).Row For Col = 1 To 8 a(Col) = .Worksheets(Feuille).Cells(lig, Col) Next .Close False End With For Col = 1 To 8 Feuil1.Cells(2, Col) = a(Col) Next End Sub
"Antoine76" a écrit dans le message de news:
Bonjour
J'essaie de créer un programme qui centralise des données issues d'autres fichiers sans pour autant les ouvrir. Le programme va donc chercher la valeur de cellules sur 8 colonnes et sur un nombre variable de ligne dans tous les fichiers d'un même dossier. Avec l'aide de Modeste et JB, je me suis inspiré de programmes d'Excelabo : cfge-lireferme( http://www.excelabo.net/moteurs/compteclic.php?nomügd-lireferme). Là où je ne sais pas comment adapté cette lecture en fichier fermé, c'est pour définir la dernière cellule (= la dernière ligne) de ce fichier au niveau de ma boucle de capture, sur la variable nl, du programme ci-après :
Dim P As String, F As String, S As String, A As String, R As Byte Dim lig, nl, k As Byte P = "C:Mes documentsessai" F = "arrêt ZAZA.xls" S = "Sommaire" lig = 2 For nl = 3 To 100 '''''''''''''' à remplacer par [C65000].End(xlUp).Row du fichier ZAZA / que je n'arrive pas à intégrer lig = lig + 1 For k = 1 To 8 A = Cells(nl, k).Address Cells(lig, k + 1).Value = "='" & P & "[" & F & "]" & S & "'!" & Range(A) _ .Range("A1").Address(, , xlR1C1) Next k Next nl
Je ne sais pas si c'est possible de détecter la dernière celluleou rang en lecture cachée.
Merci à tous
Antoine
Antoine
Bonsoir Youky
Je connaissais le prêt-à-porter ; je crois que je viens de découvrir le prêt-à-coller ! ;-)
Merci beaucoup pour ton aide
Antoine
"Youky" a écrit dans le message de news: 43cbc245$0$19702$
Salut Antoine comme je connais un peu tes fichiers j'ai mis directement certaines variables tu dois enregistrer le fichier avant de lancer cette macro. La macro n'est pas trés rapide mais ca marche Youky Sub Macro1() Dim a(8) Dim Fichier As String, Feuille As String, chem As String chem = ActiveWorkbook.Path Fichier = chem & "" & "Formulaires Arrêt de travail.xls" Feuille = "Sommaire" With CreateObject("Excel.Application").Workbooks.Open(Fichier) lig = .Worksheets(Feuille).[C65000].End(xlUp).Row For Col = 1 To 8 a(Col) = .Worksheets(Feuille).Cells(lig, Col) Next .Close False End With For Col = 1 To 8 Feuil1.Cells(2, Col) = a(Col) Next End Sub
"Antoine76" a écrit dans le message de news:
Bonjour
J'essaie de créer un programme qui centralise des données issues d'autres fichiers sans pour autant les ouvrir. Le programme va donc chercher la valeur de cellules sur 8 colonnes et sur un nombre variable de ligne dans tous les fichiers d'un même dossier. Avec l'aide de Modeste et JB, je me suis inspiré de programmes d'Excelabo : cfge-lireferme( http://www.excelabo.net/moteurs/compteclic.php?nomügd-lireferme). Là où je ne sais pas comment adapté cette lecture en fichier fermé, c'est pour définir la dernière cellule (= la dernière ligne) de ce fichier au niveau de ma boucle de capture, sur la variable nl, du programme ci-après :
Dim P As String, F As String, S As String, A As String, R As Byte Dim lig, nl, k As Byte P = "C:Mes documentsessai" F = "arrêt ZAZA.xls" S = "Sommaire" lig = 2 For nl = 3 To 100 '''''''''''''' à remplacer par [C65000].End(xlUp).Row du fichier ZAZA / que je n'arrive pas à intégrer lig = lig + 1 For k = 1 To 8 A = Cells(nl, k).Address Cells(lig, k + 1).Value = "='" & P & "[" & F & "]" & S & "'!" & Range(A) _ .Range("A1").Address(, , xlR1C1) Next k Next nl
Je ne sais pas si c'est possible de détecter la dernière celluleou rang en lecture cachée.
Merci à tous
Antoine
Bonsoir Youky
Je connaissais le prêt-à-porter ; je crois que je viens de découvrir le
prêt-à-coller ! ;-)
Merci beaucoup pour ton aide
Antoine
"Youky" <bruno.jeune@wanadoo.fr> a écrit dans le message de news:
43cbc245$0$19702$8fcfb975@news.wanadoo.fr...
Salut Antoine
comme je connais un peu tes fichiers j'ai mis directement certaines
variables
tu dois enregistrer le fichier avant de lancer cette macro.
La macro n'est pas trés rapide mais ca marche
Youky
Sub Macro1()
Dim a(8)
Dim Fichier As String, Feuille As String, chem As String
chem = ActiveWorkbook.Path
Fichier = chem & "" & "Formulaires Arrêt de travail.xls"
Feuille = "Sommaire"
With CreateObject("Excel.Application").Workbooks.Open(Fichier)
lig = .Worksheets(Feuille).[C65000].End(xlUp).Row
For Col = 1 To 8
a(Col) = .Worksheets(Feuille).Cells(lig, Col)
Next
.Close False
End With
For Col = 1 To 8
Feuil1.Cells(2, Col) = a(Col)
Next
End Sub
"Antoine76" <awerel@mageos.com> a écrit dans le message de news:
uPfZxvbGGHA.1628@TK2MSFTNGP12.phx.gbl...
Bonjour
J'essaie de créer un programme qui centralise des données issues d'autres
fichiers sans pour autant les ouvrir.
Le programme va donc chercher la valeur de cellules sur 8 colonnes et sur
un
nombre variable de ligne dans tous les fichiers
d'un même dossier. Avec l'aide de Modeste et JB, je me suis inspiré de
programmes d'Excelabo : cfge-lireferme(
http://www.excelabo.net/moteurs/compteclic.php?nomügd-lireferme). Là où
je
ne sais pas comment adapté cette lecture en fichier fermé, c'est pour
définir la dernière cellule (= la dernière ligne) de ce fichier au niveau
de
ma boucle de capture, sur la variable nl, du programme ci-après :
Dim P As String, F As String, S As String, A As String, R As Byte
Dim lig, nl, k As Byte
P = "C:Mes documentsessai"
F = "arrêt ZAZA.xls"
S = "Sommaire"
lig = 2
For nl = 3 To 100 '''''''''''''' à remplacer par [C65000].End(xlUp).Row
du fichier ZAZA / que je n'arrive pas à intégrer
lig = lig + 1
For k = 1 To 8
A = Cells(nl, k).Address
Cells(lig, k + 1).Value = "='" & P & "[" & F & "]" & S & "'!" &
Range(A) _
.Range("A1").Address(, , xlR1C1)
Next k
Next nl
Je ne sais pas si c'est possible de détecter la dernière celluleou rang
en
lecture cachée.
Je connaissais le prêt-à-porter ; je crois que je viens de découvrir le prêt-à-coller ! ;-)
Merci beaucoup pour ton aide
Antoine
"Youky" a écrit dans le message de news: 43cbc245$0$19702$
Salut Antoine comme je connais un peu tes fichiers j'ai mis directement certaines variables tu dois enregistrer le fichier avant de lancer cette macro. La macro n'est pas trés rapide mais ca marche Youky Sub Macro1() Dim a(8) Dim Fichier As String, Feuille As String, chem As String chem = ActiveWorkbook.Path Fichier = chem & "" & "Formulaires Arrêt de travail.xls" Feuille = "Sommaire" With CreateObject("Excel.Application").Workbooks.Open(Fichier) lig = .Worksheets(Feuille).[C65000].End(xlUp).Row For Col = 1 To 8 a(Col) = .Worksheets(Feuille).Cells(lig, Col) Next .Close False End With For Col = 1 To 8 Feuil1.Cells(2, Col) = a(Col) Next End Sub
"Antoine76" a écrit dans le message de news:
Bonjour
J'essaie de créer un programme qui centralise des données issues d'autres fichiers sans pour autant les ouvrir. Le programme va donc chercher la valeur de cellules sur 8 colonnes et sur un nombre variable de ligne dans tous les fichiers d'un même dossier. Avec l'aide de Modeste et JB, je me suis inspiré de programmes d'Excelabo : cfge-lireferme( http://www.excelabo.net/moteurs/compteclic.php?nomügd-lireferme). Là où je ne sais pas comment adapté cette lecture en fichier fermé, c'est pour définir la dernière cellule (= la dernière ligne) de ce fichier au niveau de ma boucle de capture, sur la variable nl, du programme ci-après :
Dim P As String, F As String, S As String, A As String, R As Byte Dim lig, nl, k As Byte P = "C:Mes documentsessai" F = "arrêt ZAZA.xls" S = "Sommaire" lig = 2 For nl = 3 To 100 '''''''''''''' à remplacer par [C65000].End(xlUp).Row du fichier ZAZA / que je n'arrive pas à intégrer lig = lig + 1 For k = 1 To 8 A = Cells(nl, k).Address Cells(lig, k + 1).Value = "='" & P & "[" & F & "]" & S & "'!" & Range(A) _ .Range("A1").Address(, , xlR1C1) Next k Next nl
Je ne sais pas si c'est possible de détecter la dernière celluleou rang en lecture cachée.