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

Automatisation de l'extraction et la recopie de données entre fichiers

4 réponses
Avatar
Bonjour,

Je viens soliciter votre aide pour une procédure d'automatisation qui me
permettrais d'obtenir le résultat suivant :
J'ai plusieurs fichiers excel dans un même répertoire.
Cependant, tous ces fichiers excel ne possèdent pas l'onglet "banque"
Pour ceux qui le possède, je souhaite en extraire certaines cellules.
Et les recopier en mode ligne dans un fichier nouveau fichier excel.
- ColA nom du fichier
- Col B 1er cellule extraite
- Col C 2nd cellule extraite etc...


Je vous remercie par avance

4 réponses

Avatar
LSteph
Bonjour,

sans macro juste pour rire:
se positionner en b2
fichier ouvrir le répertoire concerné, puis annuler
Données consolider '[*.xls]banque'!B2
cocher lier aux données souce
(un message erreur apparaîtra pour ceux qui n'ont pas banque)
ensuite Données Grouper...Plan Supprimer le plan
se positionner en a2
Définir un nom
nomfich réfère à
=LIRE.FORMULE(Feuil1!B2)
ok
en a2
=nomfich
à recopier vers bas
pour les autres cellules voulues recopier la formule de b2 (sans les
dollards) par décalage ou rechercher remplacer

--
lSteph

On 30 sep, 11:46, wrote:
Bonjour,

Je viens soliciter votre aide pour une procédure d'automatisation qui m e
permettrais d'obtenir le résultat suivant :
    J'ai plusieurs fichiers excel dans un  même répertoire.
    Cependant, tous ces fichiers excel ne possèdent pas l'onglet "b anque"
    Pour ceux qui le possède, je souhaite en extraire certaines cel lules.
    Et les recopier en mode ligne dans un fichier nouveau fichier exc el.
     - ColA nom du fichier
     - Col B 1er cellule extraite
     - Col C 2nd cellule extraite etc...

Je vous remercie par avance


Avatar
LSteph
...pour éviter les messages alerte , avec VBA donnerait à peu près
ceci:

Sub forfun()

ChDir "C:BIDON"
With Application
.ScreenUpdating = False
.DisplayAlerts = False
[b2].Consolidate Sources:="'[*.xls]banque'!R2C2", _
Function:=xlSum, TopRow:lse, _
LeftColumn:lse, CreateLinks:=True
Cells.ClearOutline
[a2].Activate
ActiveWorkbook.Names.Add Name:="nomfich", _
RefersToR1C1:="=GET.FORMULA(Feuil1!RC[1])"

ActiveCell.FormulaR1C1 = "=nomfich"
[a2].AutoFill Range("a2", _
[b65536].End(xlUp).Offset(0, -1).Address)
.ScreenUpdating = True
.DisplayAlerts = True
End With
End Sub

'lSteph

On 30 sep, 12:50, LSteph wrote:
Bonjour,

sans macro juste pour rire:
se positionner en b2
fichier ouvrir le répertoire concerné, puis annuler
Données consolider '[*.xls]banque'!B2
cocher lier aux données souce
(un message erreur apparaîtra pour ceux qui n'ont pas banque)
ensuite Données Grouper...Plan Supprimer le plan
se positionner en a2
Définir un nom
nomfich réfère à
=LIRE.FORMULE(Feuil1!B2)
ok
en a2
=nomfich
 à recopier vers bas
pour les autres cellules voulues recopier la formule de b2 (sans les
dollards) par décalage ou rechercher remplacer

--
lSteph

On 30 sep, 11:46, wrote:



> Bonjour,

> Je viens soliciter votre aide pour une procédure d'automatisation qui me
> permettrais d'obtenir le résultat suivant :
>     J'ai plusieurs fichiers excel dans un  même répertoire.
>     Cependant, tous ces fichiers excel ne possèdent pas l'onglet "banque"
>     Pour ceux qui le possède, je souhaite en extraire certaines c ellules.
>     Et les recopier en mode ligne dans un fichier nouveau fichier e xcel.
>      - ColA nom du fichier
>      - Col B 1er cellule extraite
>      - Col C 2nd cellule extraite etc...

> Je vous remercie par avance- Masquer le texte des messages précéden ts -

- Afficher le texte des messages précédents -


Avatar
Je vous remercie déjà pour vos réponses mais j'ai peur que cette procédure
soit plus compliquée que ma demande.

En fait pour simplifier, j'ai :
- dans un répertoire 3 fichiers ( 1 vierge pour recevoir mes données
extraites et les 2 autres qui contiennent les données à extraire).

Je souhaiterais que ma procédure me permette de :
- identifier les fichiers qui devront être analysés
- ouvrir le 1er fichier, vérifier l'existence de l'onglet banque et si
celui-ci existe
° saisir dans le fichier vide en cellule "A1" le nom du 1er fichier
ouvert
° copier en cellule "B1" les données d'une cellule selectionnée du
1er fichier ouvert (par ex "N3")
° recommencer cette procédure pour autant de cellule à extraire et
les copier en C1, D1, E1 etc...
- ouvrir le 2nd fichier et recommencer l'ensemble de la procédure
précédente mais en y recopiant les données extraites dans les cellules A2,
B2, C2 etc...

Merci par avance pour votre compréhension




"LSteph" a écrit dans le message de news:

...pour éviter les messages alerte , avec VBA donnerait à peu près
ceci:

Sub forfun()

ChDir "C:BIDON"
With Application
.ScreenUpdating = False
.DisplayAlerts = False
[b2].Consolidate Sources:="'[*.xls]banque'!R2C2", _
Function:=xlSum, TopRow:úlse, _
LeftColumn:úlse, CreateLinks:=True
Cells.ClearOutline
[a2].Activate
ActiveWorkbook.Names.Add Name:="nomfich", _
RefersToR1C1:="=GET.FORMULA(Feuil1!RC[1])"

ActiveCell.FormulaR1C1 = "=nomfich"
[a2].AutoFill Range("a2", _
[b65536].End(xlUp).Offset(0, -1).Address)
.ScreenUpdating = True
.DisplayAlerts = True
End With
End Sub

'lSteph

On 30 sep, 12:50, LSteph wrote:
Bonjour,

sans macro juste pour rire:
se positionner en b2
fichier ouvrir le répertoire concerné, puis annuler
Données consolider '[*.xls]banque'!B2
cocher lier aux données souce
(un message erreur apparaîtra pour ceux qui n'ont pas banque)
ensuite Données Grouper...Plan Supprimer le plan
se positionner en a2
Définir un nom
nomfich réfère à
=LIRE.FORMULE(Feuil1!B2)
ok
en a2
=nomfich
à recopier vers bas
pour les autres cellules voulues recopier la formule de b2 (sans les
dollards) par décalage ou rechercher remplacer

--
lSteph

On 30 sep, 11:46, wrote:



> Bonjour,

> Je viens soliciter votre aide pour une procédure d'automatisation qui me
> permettrais d'obtenir le résultat suivant :
> J'ai plusieurs fichiers excel dans un même répertoire.
> Cependant, tous ces fichiers excel ne possèdent pas l'onglet "banque"
> Pour ceux qui le possède, je souhaite en extraire certaines cellules.
> Et les recopier en mode ligne dans un fichier nouveau fichier excel.
> - ColA nom du fichier
> - Col B 1er cellule extraite
> - Col C 2nd cellule extraite etc...

> Je vous remercie par avance- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -


Avatar
LSteph
Bonjour,

soit plus compliquée que ma demande...



....la procèdure indiquée, sous réserve d'adapter à ton besoin
notament le chemin c:bidon à celui de ton choix et de placer le
fichier de synthèse ailleurs que ceux qu'il cible, permet de faire
automatiquement ce que tu avais initialement demandé. Son execution
prend 1 seconde et sans avoir à ouvrir les autres fichier.

.. a contrario, la série d'actions que tu suggères pour parvenir au
résultat nouvellement précisé serait sensiblement plus compliquée q ue
le but à atteindre
mais te permettrait d'enregistrer toi même la macro, la difficulé
sera alors de vérifier ou non la présence de "banque" , ce dont on
était quitte selon la solution que je proposais.
De plus, je ne vois pas pourquoi s'amuser à recommencer la procèdure
pour chaque cellule.
Ce que je t'ai donné pour une cellule peut se faire de même pour un
ensemble de cellules.
exemplesi au lieu de b2 on veut b3:n3
[b2].Consolidate Sources:="'[*.xls]banque'!R2C2"
serait remplacé par
[b2].Consolidate Sources:="'[*.xls]banque'!R3C2:R3C14

Mais bon...

;-) c'est vous qui voyez...!

Cordialement.

--
lSteph






On 1 oct, 10:07, wrote:
Je vous remercie déjà pour vos réponses mais j'ai peur que cette pr océdure
soit plus compliquée que ma demande.

En fait pour simplifier, j'ai :
 - dans un répertoire 3 fichiers ( 1 vierge pour recevoir mes donné es
extraites et les 2 autres qui contiennent les données à extraire).

Je souhaiterais que ma procédure me permette de :
    - identifier les fichiers qui devront être analysés
    - ouvrir le 1er fichier, vérifier l'existence de l'onglet banqu e et si
celui-ci existe
        ° saisir dans le fichier vide en cellule "A1" le nom du 1er fichier
ouvert
        ° copier en cellule "B1" les données d'une cellule se lectionnée du
1er fichier ouvert (par ex "N3")
        ° recommencer cette procédure pour autant de cellule à extraire et
les copier en C1, D1, E1 etc...
    - ouvrir le 2nd fichier et recommencer l'ensemble de la procédu re
précédente mais en y recopiant les données extraites dans les cellu les A2,
B2, C2 etc...

Merci par avance pour votre compréhension

"LSteph" a écrit dans le message de news:

...pour éviter les messages alerte , avec  VBA donnerait à peu pr ès
ceci:

Sub forfun()

ChDir "C:BIDON"
With Application
    .ScreenUpdating = False
    .DisplayAlerts = False
    [b2].Consolidate Sources:="'[*.xls]banque'!R2C2", _
    Function:=xlSum, TopRow:lse, _
    LeftColumn:lse, CreateLinks:=True
    Cells.ClearOutline
    [a2].Activate
    ActiveWorkbook.Names.Add Name:="nomfich", _
    RefersToR1C1:="=GET.FORMULA(Feuil1!RC[1])"

    ActiveCell.FormulaR1C1 = "=nomfich"
    [a2].AutoFill Range("a2", _
    [b65536].End(xlUp).Offset(0, -1).Address)
    .ScreenUpdating = True
    .DisplayAlerts = True
End With
End Sub

'lSteph

On 30 sep, 12:50, LSteph wrote:



> Bonjour,

> sans macro juste pour rire:
> se positionner en b2
> fichier ouvrir le répertoire concerné, puis annuler
> Données consolider '[*.xls]banque'!B2
> cocher lier aux données souce
> (un message erreur apparaîtra pour ceux qui n'ont pas banque)
> ensuite Données Grouper...Plan Supprimer le plan
> se positionner en a2
> Définir un nom
> nomfich réfère à
> =LIRE.FORMULE(Feuil1!B2)
> ok
> en a2
> =nomfich
> à recopier vers bas
> pour les autres cellules voulues recopier la formule de b2 (sans les
> dollards) par décalage ou rechercher remplacer

> --
> lSteph

> On 30 sep, 11:46, wrote:

> > Bonjour,

> > Je viens soliciter votre aide pour une procédure d'automatisation q ui me
> > permettrais d'obtenir le résultat suivant :
> > J'ai plusieurs fichiers excel dans un même répertoire.
> > Cependant, tous ces fichiers excel ne possèdent pas l'onglet "banqu e"
> > Pour ceux qui le possède, je souhaite en extraire certaines cellule s.
> > Et les recopier en mode ligne dans un fichier nouveau fichier excel.
> > - ColA nom du fichier
> > - Col B 1er cellule extraite
> > - Col C 2nd cellule extraite etc...

> > Je vous remercie par avance- Masquer le texte des messages précéd ents -

> - Afficher le texte des messages précédents -- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -