Résultats pour "importer classeur ferme fichier variable"

7'313 résultats pour cette recherche

Bonjour,

Je travaille avec deux fichiers (en PJ) :

  • un fichier ZALT.xlsx qui est exporté d'un logiciel et qui comporte des données brutes
    48zalt.xlsx (8.62 Ko)
  • un fichier ZALT2.xlsm sur lequel je vais retravailler ces données via plusieurs macros
    52zalt2.xlsm (14.73 Ko)

Mon objectif :

Lancer une macro depuis mon fichier ZALT2 qui va venir copier le corps des données de mon fichier d'extraction (sans la ligne d'en-tête) dans le premier onglet de mon classeur. Particularité : je connais le nombre de colonnes mais pas de lignes.

Ci-dessous, le code de la macro que j'ai crée qui fonctionne pas mal à la différence près que c'est la mise en forme du fichier d'arrivée (ZALT2) qui est conservée. Je veux garder la mise en forme du dossier ZALT.

Donc si vous pouvez m'aider à trouver l'astuce ou à améliorer mon code, je suis prenneur.

Merci bcp !

waxscud

Sub Importer()

Dim Chemin As String, Fichier As String, Fichier2 As String

Chemin = ThisWorkbook.Path & Application.PathSeparator

Fichier = "ZALT.xlsx"

With Workbooks.Open(Chemin & Fichier)

Range("A2").Select

Range(Selection, Selection.End(xlDown)).Select

Range(Selection, Selection.End(xlToRight)).Select

Selection.Copy

.Close savechanges:=False

End With

With ThisWorkbook

Range("A2").Select

ActiveSheet.Paste

End With

End Sub

Bonjour à tous,

Une simple question pour commencer

Est-il possible de copier une ligne d'classeur 1 (avec des info dans les cellules ...) dans un classeur 2, sans ouvrir le classeur 1 ?

Ma chef me "propose" un nouveau défi : Comme je travail avec un classeur super lourd, elle me demande de trouver une solution pour que les informations contenu dans une ligne "l" du classeur 1 s'affiche dans le classeur 2 en cliquant sur un lien ou quelque chose du genre.

par exemple:

Dans la cellule A1 du classeur 2 (le petit classeur ...) il y a le mot Réglisse. Si je clique dessus, j'aimerais qu'une fenêtre s'ouvre ou qu'une ligne temporaire s'insère (à côté ou dessous de la cellule de "Réglisse") avec les données de la ligne 38 (par exemple) de mon classeur 1 (gros classeur bien lourd) dans laquelle le mot "réglisse" apparaît dans la cellule A38 !

Je ne sais pas du tout comment m'y prendre sur ce coup là ?!

Pouvez-vous m'aider ?

Merci

Bonjour à tous,

Mon problème est simple mais je n'ai pas trouvé de solutions adaptées dans les autres postes 😕

Je renseigne l'adresse d'un fichier dans une cellule (exemple c:/mes documents/donnée 2018.xls) et dans la cellule d'à côté, il m'importe le contenu d'une cellule (par exemple C4) de ce fichier.

Voilà...

Merci d'avance.

Bonjour,

Cela fait bien longtemps que je ne m'étais pas connecté mais cette fois-ci je bute.

Je fais donc appel à vos contributions, si vous voulez bien m'aider.

Je souhaite pouvoir faire une somme.si dans un classeur fermé. J'aimerais que le chemin/destination/répertoire varie en fonction du mois et année concernés.

Cela est-il possible ? Ci-dessous ma formule exemple :

=SOMMEPROD(('\\GNAGNA\2018\dossier\11 2018\dossier2\dossier3\[201811_classeur.xlsx]Totaux'!$F2:$F2000=B2)
*ESTNUM('\\GNAGNA\2018\dossier\11 2018\dossier2\dossier3\[201811_classeur.xlsx]Totaux'!$F2:$F2000)
;'\\GNAGNA\2018\dossier\11 2018\dossier2\dossier3\[201811_classeur.xlsx]Totaux'!$F2:$F2000

Aucune erreur sur la syntaxe dans mon fichier. Je retrouve bien le résultat quand je ne met aucune valeur relative dans le répertoire.

J'ai essayé avec des "&" avec INDIRECT et aussi avec des fonctions complémentaires telle que Indirect.ext, mais sans succés.

Je vous remercie grandement pour votre aide, en espérant que cela soit possible.

Bonjour,

J'aimerais que ma fonction retourne la valeur dans une variable au lieu de la placer dans une cellule.

La ligne à remplacer est :

Range(WritingCell).CopyFromRecordset Recordset

Voilà le code complet de ma fonction :

Private Function CopyValuesFromClosedExcelWorkbookXLSX(ExcelDatabaseFilePath As String, Worksheet As String, ReadingCell As String, WritingCell As String)
                        'Application.Run "CopyValuesFromClosedExcelWorkbookXLSX", "C:\DargoLand\Base de Données\Films.xlsx", "Films", "A1:A1", "B12"

            'References: Microsoft AcitveX Data Objects 6.1 Library

    Dim Command As ADODB.Command
    Dim Connection As ADODB.Connection
    Dim Recordset As ADODB.Recordset

    Set Connection = New ADODB.Connection
    Connection.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & "Data Source=" & ExcelDatabaseFilePath & ";Extended Properties=""Excel 12.0 Xml;HDR=Yes;ReadOnly=True;"";"

    Set Command = New ADODB.Command
    Command.ActiveConnection = Connection
    Command.CommandText = "SELECT * FROM [" & Worksheet & "$" & ReadingCell & "]"

    Set Recordset = New ADODB.Recordset
    Recordset.Open Command, , adOpenKeyset, adLockOptimistic
    Set Recordset = Connection.Execute("[" & Worksheet & "$" & ReadingCell & "]")

    Range(WritingCell).CopyFromRecordset Recordset

    Recordset.Close
    Connection.Close   
    Set Command = Nothing
    Set Connection = Nothing
    Set Recordset = Nothing
End Function

Bonjour à tous,

Dans le cadre d'un projet d'entreprise, je souhaite copier la feuille d'un classeur fermé et la coller dans une nouvelle feuille d'un classeur ouvert (celui depuis lequel j'exécute ma macro). Je suis déjà aller voir sur internet mais impossible de trouver quelque chose qui fonctionne ..

Voici mon code :

Sub RequeteClasseurFerme()

    Dim Cn As ADODB.Connection
    Dim Fichier As String
    Dim NomFeuille As String, texte_SQL As String
    Dim Rst As ADODB.Recordset

    'Définit le classeur fermé servant de base de données
    Fichier = "E:/INSA - GCE/Projet méthode/Documents internes/Tableau de sélection de matériels/00A001 - Test 1/03 - DOSSIER MATERIELS/Tableau de sélection de matériels.xlsm"
    'Nom de la feuille dans le classeur fermé
    NomFeuille = "Feuil1"

    Set Cn = New ADODB.Connection

    '--- Connection ---
    With Cn
        .Provider = "Microsoft.Jet.OLEDB.4.0"
        .ConnectionString = "Data Source=" & Fichier & _
            ";Extended Properties=Excel 8.0;"
        .Open
    End With
    '-----------------

    'Définit la requête.
    '/!\ Attention à ne pas oublier le symbole $ après le nom de la feuille.
    texte_SQL = "SELECT * FROM [Feuille de mission$]"

    Set Rst = New ADODB.Recordset
    Set Rst = Cn.Execute(texte_SQL)

    'Ecrit le résultat de la requête dans la cellule A1
    Range("A1").CopyFromRecordset Rst

    '--- Fermeture connexion ---
    Cn.Close
    Set Cn = Nothing

End Sub

Lorsque j'exécute celui-ci, j'ai une erreur (Erreur de complilation : Type défini par l'utilisateur non défini) et je ne sais pas pourquoi de plus, ma première ligne se surligne :

Cn As ADODB.Connection

J'attend vos réponses avec impatience !

Bonjour à tous,

Je souhaite copier une feuille d'un classeur fermé dans un classeur ouvert. Ayant des connaissances assez limitées en VBA, j'ai essayé de lire des tutoriels ( le silkyroad sur développez.net) mais sans réel succès. Par ailleurs, j'ai trouvé sur le forum un petit bout de code qui permet d'atteindre mon objectif.

Sub Test()

Dim ConCL As Object

Dim Rs As Object

Dim FeuilleDest As Worksheet

Dim NomFichier As String

Dim FeuilleSource As String

Dim Plage As String

'chemin et nom du classeur cible

NomFichier = "D:\Users\ighilahrizrya\Desktop\SRM 2018 11 27 22H30.xlsm"

'plage à récupérer

Plage = "A:Z"

'nom de la feuille où on doit récupérer les valeurs, à adapter...

FeuilleSource = "Feuil1"

'connexion au classeur

ConnexionCLasseur ConCL, NomFichier, Rs

'effectue la récup

With Rs

.CursorType = 1

.LockType = 3

.Open "SELECT * FROM `" & FeuilleSource & "$" & Plage & "` ", ConCL

If Not Rs.EOF Then

Set FeuilleDest = ActiveWorkbook.Worksheets("Feuil1")

FeuilleDest.Range("A1").CopyFromRecordset Rs

Else

'si la feuille est vide...

MsgBox "Aucun enregistrement renvoyé.", vbCritical

End If

End With

ConCL.Close

Set Rs = Nothing

Set ConCL = Nothing

End Sub

'Sub de connexion (séparée ici pour plus de lisibilité)

Private Sub ConnexionCLasseur(ConnexCL As Object, _

Fichier As String, _

Optional Rs)

'création de l'objet en relation tardive (évite de cocher la référence)

Set ConnexCL = CreateObject("ADODB.Connection")

'si demandé, crée l'objet pour le jeu d'erregistrements

If Not IsMissing(Rs) Then

Set Rs = CreateObject("ADODB.Recordset")

End If

'ouvre la connexion

ConnexCL.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _

"Data Source=" & Fichier & ";" & _

"Extended Properties=""Excel 8.0;HDR=NO;IMEX= 2;"""

End Sub

Des que je lance la macro, une erreur s'affiche :

' -2147467259 (80004005)'

External table is not in the format expected

Des que je clique sur débogage, une partie du code est en surbrillance :

ConnexCL.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _

"Data Source=" & Fichier & ";" & _

"Extended Properties=""Excel 8.0;HDR=NO;IMEX= 2;"""

Je travaille avec la version Excel 2013. J'ai par ailleurs activé le Microsoft Active x Data objects.

Il me semble que le problème vient du fait que le classeur cible ( celui ou je vais récupérer mes données) n'est pas au bon format.

Plus précisément, il s'agit d'un classeur avec une seule feuille. Dans celle ci il y a une colonne et une ligne avec des noms et pour chaque couple ligne-colonne correspond une valeur numérique. En gros il s'agit d'une matrice.

Si l'un de vous à la réponse, ca m'aiderait beaucoup pour mon travail.

Merci d'avance

Bonjour.

Je voudrais importer les donnees du classeur "Ruis.xlsx" dans mon classeur active: "Stat.Xlsm". avec le code suivant:

Sub Importer()

Dim Chemin As String, Fichier As String

Chemin = "D:\STATISTIQUES\"

Fichier = "Ruis.xls"

Application.DisplayAlerts = False

ThisWorkbook.Names.Add "BDR", _

RefersTo:="='" & Chemin & "[" & Fichier & "]BaseR'!$A$2:$D$5"

Sheets("Base").Select

derlig = Cells.Find("*", , , , xlByRows, xlPrevious).Row

With Sheets("Feuil2")

.[A2:D5] = "=BDR"

.[A2:D5].Copy

Sheets("Base").Range("A" & derlig + 1).PasteSpecial xlPasteValues

.[A2:D5].Clear

End With

Application.DisplayAlerts = True

End Sub

Le probleme est que je colle les cellules A2:D5 du classeur "Ruis.xlsx" qui grossit de jour en jour. Est-il possible de remplacer A2:D5 par un nom de cellules dynamiques.

Merci.

bonjour à tous,

petite question, ci joint un code qui copie une ligne d'un classeur ouvert vers un classeur qui normalement est fermé, ce code fonctionne à condition que je l'ouvre préalablement. comment faire pour que l'opération s'exécute sans ouvrir celui ci?

j ai bien trouvé sur le forum mais je n'arrive pas à l'adapter .

ps: débutant en vba.

merci d'avance.

nl

Private Sub CommandButton5_Click()

Sheets("Feuil2").Select

Range("A3:BX3").Copy

Workbooks.Open ("recapessai") ' c'est celui ci qui est fermé est ce trouve dans un dossier nommé "gestion" '

ThisWorkbook.Sheets(2).Activate

Sheets(2).Range("A" & Sheets(2).Range("A" & Rows.Count).End(xlUp).Row + 1).PasteSpecial Paste:=xlPasteValues

Application.CutCopyMode = False

Workbooks("recapessai").Close

Sheets("recap").Select

Range("A3").CurrentRegion.Offset(1).Resize(Range("A3").CurrentRegion.Rows.Count - 1,

Range("R3").CurrentRegion.Columns.Count).Select

Selection.Delete

Sheets("BD").Select

End Sub

Bonjour,

J'ai besoin d'importer la liste des noms de feuilles de mon classeur fermé dans des cellules de mon classeur ouvert et pour cela j'ai fait ceci (je n'ai rien inventé...)

1.Private Sub CommandButton1_Click()
2.
3.Dim XlConnect As Object, XlCatalog As Object
4. Dim Fichier As String, Resultat As String
5. Dim Feuille As Object
6. Dim objCell As Range
7.
8.Fichier = "h:\monfichierferme.xls"
9.
10.Set XlConnect = CreateObject("ADODB.Connection" )
11. Set XlCatalog = CreateObject("ADOX.Catalog" )
12.
13.XlConnect.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Fichier & _
14. ";Extended Properties=Excel 8.0;"
15. Set XlCatalog.ActiveConnection = XlConnect
16.
17.Cells(1, 1).Select
18.
19.'je ne récupére que les noms qui se terminent par "$"
20.
21.For Each Feuille In XlCatalog.Tables
22. If UCase(Right(Feuille.Name, 1)) = "$" Then
23. ActiveCell = Feuille.Name
24.
25.
26.'et suprime le "$"
27.
28.For Each objCell In Selection
29.     If Right(objCell.Value, 1) = "$" Then
30.         objCell.Value = Left(objCell.Value, Len(objCell.Value) - 1)
31.     End If
32. Next objCell
33.
34.ActiveCell.Offset(1, 0).Select
35.
36.End If
37.
38.Next
39.
40.End Sub

ce code fonctionne parfaitement sous excel 2003 ou 2010 mais bug sous 2000 avec un message d'erreur:

"projet ou bibliothéque introuvable" et surligne de cette façon la ligne

If UCase(Right(Feuille.Name, 1)) = "$" Then

que me faut-il modifier pour que cela fonctionne svp ?

s' agit-il de Microsoft office 11.0 object library coché d'un coté et Microsoft office 9.0 object library de l'autre dans les références ?

puis-je contourner le pobléme ?

Un grand merci pour vos réponses

Bonjour,

J'ouvre des fichiers de cette façon :

Workbooks.Open Filename:= _
        "chemin_access_au_fichier/nom_du_fichier.xlsx" _
        , UpdateLinks:=0, ReadOnly:=True
    ActiveWindow.Visible = False

Pour les fermer, j'utilise ceci :

Workbooks("nom_du_fichier.xlsx").Close False

Cette fois, le nom du fichier est une variable (extension incluse).

J'ai essayé un peu tout et n'importe que mais rien n'a fonctionné :

Workbooks("Range("AF7")").Close False
Workbooks(Range("AF7")).Close False
Workbooks("AF7").Close False
Workbooks(AF7).Close False

Comment n'avoir que la variable dans la paranthèse de Workbooks ?

Merci.

EDIT :

Bizarremment, j'ai trouvé une solution Je progresse lol

Dim nom_fichier As String
nom_fichier = Range("AF7")
        Workbooks(test).Close False

AF7 contient le nom du fichier bien sûr

bonjour à tous !

je suis débutant sur excel et malgré mes recherche je bloque totalement.

alors j'ai un fichier "base de données" dans lequel j'ai des colonnes et j'aimerais coller une a chaque fois une colonnes dans un fichier différent sans l'ouvrir ^^

je suis vraiment débutant et j'ai du mal, j'ai réussi mais en ouvrant chaque fichier ce que rend le temps d’exécutions très long ( 40 fichiers à ouvrir)

je vous remercie par avance ^^

Bonjour à tous,

Voilà mon problème :

Je souhaite copier le contenu d'une cellule d'un excel fermé vers mon fichier excel ouvert. Pour cela j'utilise la macro suivante :

Sub insertion_bibliotheque()

Workbooks.Open Filename:= _

"R:\Departements\Departement Production\BIBLIOTHEQUE\" & Cells(64, 3).Value & ".xlsx"

Cells(13, 2).Select

Selection.Copy

Windows("FICHE TRAVAIL EXEMPLE version 5").Activate

Sheets("Gamme").Select

Cells(443, 2).Select

ActiveSheet.Paste

Application.DisplayAlerts = False

Windows("" & Cells(64, 3).Value & ".xlsx").Activate

ActiveWindow.Close

End Sub

Vous pouvez constater dans l'adresse que j'utilise " & Cells(64, 3).Value & " car le nom du fichier fermé peux varier et je le rentre directement dans une cellule de mon fichier excel ouvert.

Cette macro rempli sa fonction c'est à dire qu'elle copie bien le contenu qui m'intéresse pour l'envoyer vers mon fichier ouvert. La ou ça coince c'est au niveau du Windows("" & Cells(64, 3).Value & ".xlsx").Activate il me met le message d'erreur suivant :

Erreur d'execution '9' :

L'indice n'appartient pas à la sélection

Je suis sûr que c'est une mauvaise écriture de ma part, mais la je sèche complètement. Si quelqu'un à une idée..

bonjour,

voila je voudrais copier la feuil 1 du fichier " comtes " sans l'ouvrir dans le fichier " pavillon essai '

dans la zone ( j4 p50 )

merci de votre aide

amicalement Jean Yves.

voir fichiers ci joint

11comptes.xlsx (15.56 Ko)
12pavillon-essai.xlsm (191.36 Ko)

Bonjour,

Je suis bloqué sur un petit problème VBA à mon travail que je n'arrive pas à résoudre (on va dire que mes compétences en la matière sont assez limitées ). Je vous expose celui-ci :

Situation initiale :

Mon fichier A est ouvert sur la "Feuil1"

Mon fichier B est fermé et se trouve dans un dossier en suivant ce lien "G:\Entreprise\80-Partages\20-Produits\10-Methodes"

Fonctionnement souhaité (sans ouverture du ficher B) :

Dans fichier B, extraire valeurs présentes dans Feuil2 Range("D11:G11")

Coller ces valeurs dans fichier A, Feuil1, Range("B11:E11")

PS : La macro à réaliser se trouve dans la Feuil1 du fichier A.

Merci d'avance pour votre aide !

Bonjour,

Un fichier excel accessible en réseau a été ouvert par une personne, il a été refermé, mais quand on veut l'ouvrir, il apparait toujours en "read only" et impossible d'y accéder complètement.

Y a t-il une solution pour le fermer ou alors faut-il faire une copie, mais alors, réadapter des formules car fichiers en relation avec d'autres.

Merci pour votre aide.

Bonjour à tous

1:

voila deja qqs jours que je planche sur mes macros et j'ai besoin de vos lumières:

je récapépette :

  • j'ouvre un fichier excel 'bilan' ou une fenetre me demande de rentrer une année N ( ex 2008)
  • ensuite, de manière automatique il doit aller chercher les valeurs des cellules B5 et D7 de la feuille 'annexe' du fichier 'bilan_N-1'(donc ici 'bilan_2007') pour les mettre dans les cases C8 et E9 de la feuille 'resultat' du fichier bilan (si possible sans ouvrir le fichier 'bilan_2007')
  • Demander si on veut faire une sauvegarde ( sous le nom 'bilan_N' donc ici 'bilan_2008)

D'autre part certains modules ou fonctions de la macro doivent etre mis en

classeur caché

ou module

ou thisworkbook

pouvez vous m'aider ? merci d'avance

2:

par ailleurs j'ai essayé divers méthodes:

*** Private Function GetValue(A, B, C, D)

'Récupération d'une valeur dans un fichier fermé

Dim Chemin As String

Chemin = "'" & A & "[" & B & "]" & C & "'!" & D

'Crée l'argument de la fonction XL4

GetValue = ExecuteExcel4Macro (Chemin)

'Exécute la macro XLM

End Function

Private Sub Workbook_open()

Dim Annee As String

Dim Repertoire As String

Dim Nom_Fich As String

Dim Feuille As String

Dim Cellule As String

Dim Valeur As Double

Annee = 2008

Feuille = "Résultat de l'année"

Cellule = "B5"

Repertoire = ActiveWorkbook.Path

Nom_Fich = "bilan-" & Annee - 1 & "essai.xls"

Valeur = GetValue(Repertoire, Nom_Fich, Feuille, Cellule)

End Sub

j'ai essayé plusieurs choses mais j'ai toujours un pb avec la syntaxe au niveau de ExecuteExcel4Macro (Chemin)

**** comment faire une fonction qui retourene une chaine de caractères (je m'en servirai pour le chemin d'autres valeurs qu'il me faudra chercher)

J'espère que j'ai été clair dans mes explications...

merci d'avance pour votre aide

Bonjour à tous,

J'ai beau chercher je n'arrive pas à trouver. J'aimerai savoir si vous avez une formule pour importer un fichier excel ou .txt avec une variable dans la destination comme :

Q:\Specifications\variable

Et cette variable elle est présente par exemple dans la case A1 d'une feuille 1.

Je vous remercie d'avance

Bonjour,

J'aurai besoin via une Macro d'importer les données de plusieurs fichiers (environ 70) entre les colonnes A à M des fichiers commençant par 186 pour ensuite les regrouper sur un classeur qui sert de base de données.

Actuellement j'y arrive pour faire un fichier mais c'est laborieux.

Je voudrais que la Macro charge ces données automatiquement pour tous les fichiers commençant par 186 et fasse une base de données pour ensuite avoir un BOARD de synthèse.

Ainsi, ouvrirai les fichiers les uns après les autres en copiant les colonnes A à M et en remplissant mon onglet formulaire, celui-ci créant un copie sur un onglet dans le classeur avec l’appellation du fichier.

Merci pour votre aide

8186328.zip (38.74 Ko)
10186329.zip (38.74 Ko)

Bonjour;

Svp comment je peut utiliser ma fonction NB.SI avec un classeur fermé pour ne pas avoir #valeur voila ma formule :

=SI(NB.SI('C:\Users\iraqi\Desktop\TEST PROGRAMME\[BASE_RACHATS_VALIDES.xlsm]Feuil1'!$AR:$AR;A1&" "&"TOTAL")>0;"ANNULE";"")

Merci d'avance

Recherches récentes

importer classeur fermeconvertir tempsconversion tempsformule conversion tempsdecalercroise dynamiquecomptabilite syndicfractionner lignescomment saisir uniquement valeurs numeriqueslistesliaison entre fichiers excelsattendu expressionmultipagefiltrer comboboxcombobox multiselectiontrier colonne listboxean13simulation trainoutlook vbacherche