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

Récup de données via VBA

6 réponses
Avatar
Noégor
Bonjour,

Je me permets de reposer ma question qui hier au soir à 20h était en
concurrence avec le SarkoShow.

Voulant récupérer des données à partir d'un dossier Excel fermé, j'ai trouvé
sur l'Excel lent site Excelabo le programme suivant :

" GeeDee d'après la macro XL4 de John Walkenbach",

qui fonctionne à merveille, mais mais...une cellule qui est définie sur la
feuille originale dans le format "TEXTE" et qui est vide, se retrouve à
l'arrivée avec le chiffre "0".

Dans le VBA la variable est définie "As String". Pensant que l'erreur
pouvait provenir de cette définition, je l'ai modifiée comme "VARIANT", mais
malheureusement j'obtiens toujours des zéros lorsque les cellules sont
vides!...

Comment faire pour que les définitions de l'original soient respectées?

Merci pour votre précieuse aide.

Noégor

6 réponses

Avatar
isabelle
bonjour Noégor,

est que tu utilise la méthode ExecuteExcel4Macro ?

isabelle

Noégor a écrit :
Bonjour,

Je me permets de reposer ma question qui hier au soir à 20h était en
concurrence avec le SarkoShow.

Voulant récupérer des données à partir d'un dossier Excel fermé, j'ai trouvé
sur l'Excel lent site Excelabo le programme suivant :

" GeeDee d'après la macro XL4 de John Walkenbach",

qui fonctionne à merveille, mais mais...une cellule qui est définie sur la
feuille originale dans le format "TEXTE" et qui est vide, se retrouve à
l'arrivée avec le chiffre "0".

Dans le VBA la variable est définie "As String". Pensant que l'erreur
pouvait provenir de cette définition, je l'ai modifiée comme "VARIANT", mais
malheureusement j'obtiens toujours des zéros lorsque les cellules sont
vides!...

Comment faire pour que les définitions de l'original soient respectées?

Merci pour votre précieuse aide.

Noégor





Avatar
Youky \(BJ\)
Voici un exemple avec ExecuteExcel4Macro
le fichier doit être enregistré dans le même répertoire

et renseigner Fichier et onglet
Chemin = "'" & ThisWorkbook.Path & ""
Fichier = "[charpente.xls]"
Onglet = "Tuiles'!"
For k = 6 To 100 'commencer à lire à la ligne 6
ChampALire = "R" & k & "C1" ' k est la ligne incrémentée C1 est col A C2 est
B ainsi de suite
ChampALire2 = "R" & k & "C2"
i = i + 1
Cells(i, 1) = Application.ExecuteExcel4Macro(Chemin & Fichier & Onglet &
ChampALire)
Cells(i, 2) = Application.ExecuteExcel4Macro(Chemin & Fichier & Onglet &
ChampALire2)
If Cells(i, 1) = 0 Then Cells(i, 1) = "": Cells(i, 2) = ""
Next

--
Youky (BJ)


"Noégor" a écrit dans le message de news:
e%
Bonjour,

Je me permets de reposer ma question qui hier au soir à 20h était en
concurrence avec le SarkoShow.

Voulant récupérer des données à partir d'un dossier Excel fermé, j'ai
trouvé
sur l'Excel lent site Excelabo le programme suivant :

" GeeDee d'après la macro XL4 de John Walkenbach",

qui fonctionne à merveille, mais mais...une cellule qui est définie sur la
feuille originale dans le format "TEXTE" et qui est vide, se retrouve à
l'arrivée avec le chiffre "0".

Dans le VBA la variable est définie "As String". Pensant que l'erreur
pouvait provenir de cette définition, je l'ai modifiée comme "VARIANT",
mais
malheureusement j'obtiens toujours des zéros lorsque les cellules sont
vides!...

Comment faire pour que les définitions de l'original soient respectées?

Merci pour votre précieuse aide.

Noégor




Avatar
Noégor
Bonjour Isabelle,
Effectivement j'exécute la fonction :GetValue = ExecuteExcel4Macro(Arg).
Merci de ton aide
Noégor
"isabelle" a écrit dans le message de
news:
bonjour Noégor,

est que tu utilise la méthode ExecuteExcel4Macro ?

isabelle

Noégor a écrit :
> Bonjour,
>
> Je me permets de reposer ma question qui hier au soir à 20h était en
> concurrence avec le SarkoShow.
>
> Voulant récupérer des données à partir d'un dossier Excel fermé, j'ai


trouvé
> sur l'Excel lent site Excelabo le programme suivant :
>
> " GeeDee d'après la macro XL4 de John Walkenbach",
>
> qui fonctionne à merveille, mais mais...une cellule qui est définie sur


la
> feuille originale dans le format "TEXTE" et qui est vide, se retrouve à
> l'arrivée avec le chiffre "0".
>
> Dans le VBA la variable est définie "As String". Pensant que l'erreur
> pouvait provenir de cette définition, je l'ai modifiée comme "VARIANT",


mais
> malheureusement j'obtiens toujours des zéros lorsque les cellules sont
> vides!...
>
> Comment faire pour que les définitions de l'original soient respectées?
>
> Merci pour votre précieuse aide.
>
> Noégor
>
>
>


Avatar
Noégor
Bonjour Youky,
Merci pour le code, mais je voudrais qu'une cellule qui est à blanc au
départ doit être également à blanc à l'arrivée, or ce n'est pas le cas car
je récupère un zéro.
Exemple: si je récupère un fichier adresses, je ne veux pas que toutes les
lignes qui sont à blanc se retrouvent avec des zéros...
Par avance merci de votre aide.
Noégor
"Youky (BJ)" a écrit dans le message de
news:
Voici un exemple avec ExecuteExcel4Macro
le fichier doit être enregistré dans le même répertoire

et renseigner Fichier et onglet
Chemin = "'" & ThisWorkbook.Path & ""
Fichier = "[charpente.xls]"
Onglet = "Tuiles'!"
For k = 6 To 100 'commencer à lire à la ligne 6
ChampALire = "R" & k & "C1" ' k est la ligne incrémentée C1 est col A C2


est
B ainsi de suite
ChampALire2 = "R" & k & "C2"
i = i + 1
Cells(i, 1) = Application.ExecuteExcel4Macro(Chemin & Fichier & Onglet &
ChampALire)
Cells(i, 2) = Application.ExecuteExcel4Macro(Chemin & Fichier & Onglet &
ChampALire2)
If Cells(i, 1) = 0 Then Cells(i, 1) = "": Cells(i, 2) = ""
Next

--
Youky (BJ)


"Noégor" a écrit dans le message de


news:
e%
> Bonjour,
>
> Je me permets de reposer ma question qui hier au soir à 20h était en
> concurrence avec le SarkoShow.
>
> Voulant récupérer des données à partir d'un dossier Excel fermé, j'ai
> trouvé
> sur l'Excel lent site Excelabo le programme suivant :
>
> " GeeDee d'après la macro XL4 de John Walkenbach",
>
> qui fonctionne à merveille, mais mais...une cellule qui est définie sur


la
> feuille originale dans le format "TEXTE" et qui est vide, se retrouve à
> l'arrivée avec le chiffre "0".
>
> Dans le VBA la variable est définie "As String". Pensant que l'erreur
> pouvait provenir de cette définition, je l'ai modifiée comme "VARIANT",
> mais
> malheureusement j'obtiens toujours des zéros lorsque les cellules sont
> vides!...
>
> Comment faire pour que les définitions de l'original soient respectées?
>
> Merci pour votre précieuse aide.
>
> Noégor
>
>




Avatar
isabelle
bonjour Noégor,

Youki a donné comme exemple :

If Cells(i, 1) = 0 Then Cells(i, 1) = "": Cells(i, 2) = ""

ça pourrait être aussi :

If Cells(i, 1) = 0 Then Cells(i, 1).clear

If Cells(i, 2) = 0 Then Cells(i, 2).clear

ou bien :

If MaVar = 0 Then MaVar = ""

isabelle




Noégor a écrit :
Bonjour Isabelle,
Effectivement j'exécute la fonction :GetValue = ExecuteExcel4Macro(Arg).
Merci de ton aide
Noégor
"isabelle" a écrit dans le message de
news:

bonjour Noégor,

est que tu utilise la méthode ExecuteExcel4Macro ?

isabelle

Noégor a écrit :

Bonjour,

Je me permets de reposer ma question qui hier au soir à 20h était en
concurrence avec le SarkoShow.

Voulant récupérer des données à partir d'un dossier Excel fermé, j'ai





trouvé

sur l'Excel lent site Excelabo le programme suivant :

" GeeDee d'après la macro XL4 de John Walkenbach",

qui fonctionne à merveille, mais mais...une cellule qui est définie sur





la

feuille originale dans le format "TEXTE" et qui est vide, se retrouve à
l'arrivée avec le chiffre "0".

Dans le VBA la variable est définie "As String". Pensant que l'erreur
pouvait provenir de cette définition, je l'ai modifiée comme "VARIANT",





mais

malheureusement j'obtiens toujours des zéros lorsque les cellules sont
vides!...

Comment faire pour que les définitions de l'original soient respectées?

Merci pour votre précieuse aide.

Noégor













Avatar
Noégor
Merci Isabelle, je n'avais pas remarqué la dernière ligne du code de Youky.
Bon week-end.
Noégor.
"isabelle" a écrit dans le message de
news:
bonjour Noégor,

Youki a donné comme exemple :

If Cells(i, 1) = 0 Then Cells(i, 1) = "": Cells(i, 2) = ""

ça pourrait être aussi :

If Cells(i, 1) = 0 Then Cells(i, 1).clear

If Cells(i, 2) = 0 Then Cells(i, 2).clear

ou bien :

If MaVar = 0 Then MaVar = ""

isabelle




Noégor a écrit :
> Bonjour Isabelle,
> Effectivement j'exécute la fonction :GetValue ExecuteExcel4Macro(Arg).
> Merci de ton aide
> Noégor
> "isabelle" a écrit dans le message de
> news:
>
>> bonjour Noégor,
>>
>> est que tu utilise la méthode ExecuteExcel4Macro ?
>>
>> isabelle
>>
>> Noégor a écrit :
>>
>>> Bonjour,
>>>
>>> Je me permets de reposer ma question qui hier au soir à 20h était en
>>> concurrence avec le SarkoShow.
>>>
>>> Voulant récupérer des données à partir d'un dossier Excel fermé, j'ai
>>>
> trouvé
>
>>> sur l'Excel lent site Excelabo le programme suivant :
>>>
>>> " GeeDee d'après la macro XL4 de John Walkenbach",
>>>
>>> qui fonctionne à merveille, mais mais...une cellule qui est définie


sur
>>>
> la
>
>>> feuille originale dans le format "TEXTE" et qui est vide, se retrouve


à
>>> l'arrivée avec le chiffre "0".
>>>
>>> Dans le VBA la variable est définie "As String". Pensant que l'erreur
>>> pouvait provenir de cette définition, je l'ai modifiée comme


"VARIANT",
>>>
> mais
>
>>> malheureusement j'obtiens toujours des zéros lorsque les cellules sont
>>> vides!...
>>>
>>> Comment faire pour que les définitions de l'original soient


respectées?
>>>
>>> Merci pour votre précieuse aide.
>>>
>>> Noégor
>>>
>>>
>>>
>>>
>
>
>