J'aimerais recopier une plage de donnée d'un fichier excel fermé pour le copier
dans le fichier en cours.
Sur le site d'excelabo (que je remercie au passage) m'a fourni des exemples.
Cela fonctionne mais, lorsque les cellules (du fichier fermé) sont vides, il
mais dans la feuille de résultat un '0'.
Y a t'il un moyen (par vba) de copier une plage de donnée en mettant uniquement
les valeurs?
Ce que j'ai déjà fait c'est une routine qui supprime les '0'. Mais vu la
quantité de donnée (12000 lignes sur 220 colonnes) cela prend un temps infernal.
Donc si je saurais recopier les données en évitant les '0' se serais plus
rapide.
Un grand merci à tous.
André
Voici le code que je possède actuellement:
1° - Le code le plus rapide :
Sub GetValues(fPath As String, FName As String, sName, cellRange As String,
place As String)
' paramètres:
' fPath : Chemin du fichier à lire
' FName : Nom du fichier à lire
' sName : Nom de la feuille à lire
' cellRange : plage de cellule à lire
' place : destination des données
' ---------------------------------------------------
With ActiveWorkbook.Worksheets(sName).Range(place)
.FormulaArray = "='" & fPath & "[" & FName & "]" & sName & "'!" & _
cellRange
.Value = .Value
End With
End Sub
2° - Cet exemple fonctionne aussi, mais c'est très lent, car il lit cellule par
cellule.
Private Function GetValue(fpath, fName, sName, cellRange)
Dim arg As String
If Right(fpath, 1) <> "\" Then fpath= fpath & "\"
If Dir(fpath & file) = "" Then
GetValue = "File Not Found"
Exit Function
End If
J'aimerais recopier une plage de donnée d'un fichier excel fermé pour le copier dans le fichier en cours.
Sur le site d'excelabo (que je remercie au passage) m'a fourni des exempl es. Cela fonctionne mais, lorsque les cellules (du fichier fermé) sont vide s, il mais dans la feuille de résultat un '0'.
Y a t'il un moyen (par vba) de copier une plage de donnée en mettant un iquement les valeurs?
Ce que j'ai déjà fait c'est une routine qui supprime les '0'. Mais vu la quantité de donnée (12000 lignes sur 220 colonnes) cela prend un temp s infernal. Donc si je saurais recopier les données en évitant les '0' se serais plus rapide.
Un grand merci à tous.
André
Voici le code que je possède actuellement:
1° - Le code le plus rapide :
Sub GetValues(fPath As String, FName As String, sName, cellRange As Strin g, place As String) ' paramètres: ' fPath : Chemin du fichier à lire ' FName : Nom du fichier à lire ' sName : Nom de la feuille à lire ' cellRange : plage de cellule à lire ' place : destination des données ' ---------------------------------------------------
With ActiveWorkbook.Worksheets(sName).Range(place) .FormulaArray = "='" & fPath & "[" & FName & "]" & sName & "' !" & _ cellRange .Value = .Value End With End Sub
2° - Cet exemple fonctionne aussi, mais c'est très lent, car il lit c ellule par cellule.
Private Function GetValue(fpath, fName, sName, cellRange)
Dim arg As String
If Right(fpath, 1) <> "" Then fpath= fpath & "" If Dir(fpath & file) = "" Then GetValue = "File Not Found" Exit Function End If
On 22 oct, 10:43, Andre.L'H...@ext.ec.europa.eu wrote:
Bonjour à tous,
J'aimerais recopier une plage de donnée d'un fichier excel fermé pour le copier
dans le fichier en cours.
Sur le site d'excelabo (que je remercie au passage) m'a fourni des exempl es.
Cela fonctionne mais, lorsque les cellules (du fichier fermé) sont vide s, il
mais dans la feuille de résultat un '0'.
Y a t'il un moyen (par vba) de copier une plage de donnée en mettant un iquement
les valeurs?
Ce que j'ai déjà fait c'est une routine qui supprime les '0'. Mais vu la
quantité de donnée (12000 lignes sur 220 colonnes) cela prend un temp s infernal.
Donc si je saurais recopier les données en évitant les '0' se serais plus
rapide.
Un grand merci à tous.
André
Voici le code que je possède actuellement:
1° - Le code le plus rapide :
Sub GetValues(fPath As String, FName As String, sName, cellRange As Strin g,
place As String)
' paramètres:
' fPath : Chemin du fichier à lire
' FName : Nom du fichier à lire
' sName : Nom de la feuille à lire
' cellRange : plage de cellule à lire
' place : destination des données
' ---------------------------------------------------
With ActiveWorkbook.Worksheets(sName).Range(place)
.FormulaArray = "='" & fPath & "[" & FName & "]" & sName & "' !" & _
cellRange
.Value = .Value
End With
End Sub
2° - Cet exemple fonctionne aussi, mais c'est très lent, car il lit c ellule par
cellule.
Private Function GetValue(fpath, fName, sName, cellRange)
Dim arg As String
If Right(fpath, 1) <> "" Then fpath= fpath & ""
If Dir(fpath & file) = "" Then
GetValue = "File Not Found"
Exit Function
End If
J'aimerais recopier une plage de donnée d'un fichier excel fermé pour le copier dans le fichier en cours.
Sur le site d'excelabo (que je remercie au passage) m'a fourni des exempl es. Cela fonctionne mais, lorsque les cellules (du fichier fermé) sont vide s, il mais dans la feuille de résultat un '0'.
Y a t'il un moyen (par vba) de copier une plage de donnée en mettant un iquement les valeurs?
Ce que j'ai déjà fait c'est une routine qui supprime les '0'. Mais vu la quantité de donnée (12000 lignes sur 220 colonnes) cela prend un temp s infernal. Donc si je saurais recopier les données en évitant les '0' se serais plus rapide.
Un grand merci à tous.
André
Voici le code que je possède actuellement:
1° - Le code le plus rapide :
Sub GetValues(fPath As String, FName As String, sName, cellRange As Strin g, place As String) ' paramètres: ' fPath : Chemin du fichier à lire ' FName : Nom du fichier à lire ' sName : Nom de la feuille à lire ' cellRange : plage de cellule à lire ' place : destination des données ' ---------------------------------------------------
With ActiveWorkbook.Worksheets(sName).Range(place) .FormulaArray = "='" & fPath & "[" & FName & "]" & sName & "' !" & _ cellRange .Value = .Value End With End Sub
2° - Cet exemple fonctionne aussi, mais c'est très lent, car il lit c ellule par cellule.
Private Function GetValue(fpath, fName, sName, cellRange)
Dim arg As String
If Right(fpath, 1) <> "" Then fpath= fpath & "" If Dir(fpath & file) = "" Then GetValue = "File Not Found" Exit Function End If
J'aimerais recopier une plage de donnée d'un fichier excel fermé pour > le copier dans le fichier en cours.
Sur le site d'excelabo (que je remercie au passage) m'a fourni des exempl >es. Cela fonctionne mais, lorsque les cellules (du fichier fermé) sont vide >s, il mais dans la feuille de résultat un '0'.
Bonjour,
Jaimerais bien essayer votre lien, mais il ne fonctionne pas. J'ai un "time out"
Pourriez-vous controlez l'adresse URL svp
On 22 oct, 10:43, Andre.L'H...@ext.ec.europa.eu wrote:
Bonjour à tous,
J'aimerais recopier une plage de donnée d'un fichier excel fermé pour > le copier
dans le fichier en cours.
Sur le site d'excelabo (que je remercie au passage) m'a fourni des exempl >es.
Cela fonctionne mais, lorsque les cellules (du fichier fermé) sont vide >s, il
mais dans la feuille de résultat un '0'.
J'aimerais recopier une plage de donnée d'un fichier excel fermé pour > le copier dans le fichier en cours.
Sur le site d'excelabo (que je remercie au passage) m'a fourni des exempl >es. Cela fonctionne mais, lorsque les cellules (du fichier fermé) sont vide >s, il mais dans la feuille de résultat un '0'.
JB
Sub LitClasseurFermé() ChampOuCopier = "A1:A4" Chemin = ThisWorkbook.Path Fichier = "stock.xls" onglet = "Janvier" ChampAlire = "B2:B5" LitChamp ChampOuCopier, Chemin, Fichier, onglet, ChampAlire End Sub
Sub LitChamp(ChampOuCopier, Chemin, Fichier, onglet, ChampAlire) Range(ChampOuCopier).FormulaArray = "='" & Chemin & "[" & Fichier & "]" & onglet & "'!" & ChampAlire Range(ChampOuCopier) = Range(ChampOuCopier).Value End Sub
JB
On 22 oct, 13:26, Andre.L' wrote:
Bonjour,
Jaimerais bien essayer votre lien, mais il ne fonctionne pas. J'ai un "ti me out" Pourriez-vous controlez l'adresse URL svp