Importer une plage de données à partir d'un fichier fermé

Résolu
julia Namor Messages postés 524 Date d'inscription   Statut Membre Dernière intervention   -  
julia Namor Messages postés 524 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'aimerai importer une plage de donnée à partir d'un fichier fermé . J'ai trouvé ce code sur le net et j'ai essayé en vain de l'adapter à ma situation.

Je sollicite votre aide pour le corriger .
Merci énormément




Private Sub IMPORTER_Click()

Application.DisplayAlerts = False
Application.ScreenUpdating = False
Dim titre As String
Dim wbk1 As Workbook
Dim wbk2 As Workbook
chemin = ThisWorkbook.Path
titre = chemin & "bdd.xlsm"
Set wbk1 = ThisWorkbook
Set wbk2 = Workbooks.Open(titre) '(ouvrir le classeur (titre)
wk1.Sheets(base).Range("données").Value = wbk2.Sheets(base).Range("données").Value
wbk2.Close
End Sub
A voir également:

5 réponses

redaiwa Messages postés 351 Date d'inscription   Statut Membre Dernière intervention   119
 
Salam Julia.

En fait, il fallait quelque corrections à ton code au niveau des lignes en gras :

Private Sub IMPORTER_Click()
Application.DisplayAlerts = False
Application.ScreenUpdating = False
Dim titre As String
Dim wbk1 As Workbook
Dim wbk2 As Workbook
chemin = ThisWorkbook.Path
titre = chemin & "\bdd.xlsm"
Set wbk1 = ThisWorkbook
Set wbk2 = Workbooks.Open(titre) '(ouvrir le classeur (titre)
wbk1.Sheets("base").Range("données").Value = wbk2.Sheets("base").Range("données").Value
wbk2.Close
End Sub

Est-ce que ça marche ?
J'espère que oui !

:)
1
julia Namor Messages postés 524 Date d'inscription   Statut Membre Dernière intervention   33
 
Merci redaiwa

Ça marche très bien.

Est-ce que c'est possible de modifier le code de sorte que les données en doublons (déjà existantes dans wbk1) soient détectées et non importées ?

Gros merci
0
redaiwa Messages postés 351 Date d'inscription   Statut Membre Dernière intervention   119
 
Le principe c'est qu'à chaque donnée lue sur wkb2, il faut parcourir wkb1 pour voir si elle existe déjà et agir en conséquence. Mais encore faut-il connaître comment sont disposées les données. Si tu peux, poste un fichier exemple.
0
redaiwa Messages postés 351 Date d'inscription   Statut Membre Dernière intervention   119
 
0
julia Namor Messages postés 524 Date d'inscription   Statut Membre Dernière intervention   33
 
j'y cours
0
redaiwa Messages postés 351 Date d'inscription   Statut Membre Dernière intervention   119
 
Salam Julia.

Pour l'histoire des doublons, essaye ceci : https://www.cjoint.com/?DICm5AJcsvD

Bon wekk-end à ton tour :)
0
julia Namor Messages postés 524 Date d'inscription   Statut Membre Dernière intervention   33
 
Merci Redaiwa de ton soutien

le lien ne fonctionne pas.

bien Cordialement
0
julia Namor Messages postés 524 Date d'inscription   Statut Membre Dernière intervention   33
 
merci
0
redaiwa Messages postés 351 Date d'inscription   Statut Membre Dernière intervention   119
 
Salam Julia.

Désolé de couper court, mais je dois quitter maintenant, chez nous c'est déjà le week-end !
Bonne chance et A+.
0
julia Namor Messages postés 524 Date d'inscription   Statut Membre Dernière intervention   33
 
merci bon we
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
julia Namor Messages postés 524 Date d'inscription   Statut Membre Dernière intervention   33
 
Bonjour redaiwa

Excuses moi du retour tardif.

Les fichiers correspondent bien à l'importation des données avec contrôle de la présence ou non d'un doublon dans la BDD avant de copier. Ça fonctionne bien.

En revanche, je n'ai que la colonne A d'importée. J'ai essayé d'étendre, en vain, la copie des lignes de A à J en faisant :

fin1 = ThisWorkbook.Sheets("base").Range("A:J" & Rows.Count).End(xlUp).Row
fin2 = Workbooks("bdd.xlsm").Sheets("base").Range("A:J" & Rows.Count).End(xlUp).Row.

Je te joins deux fichiers d'exemples.

Le contrôle des doublons se faisant sur le numéro de Matricule (donnée individuelle).

Merci énormément

https://www.cjoint.com/?3JbhgYiL8I4
https://www.cjoint.com/?3JbhhDYKd1M
0