Importer seulement les nouvelles données.

geekpok

XLDnaute Nouveau
Bonjour,

J'ai une base de données qui est rempli par les technicien et je souhaite importer cette base de données et ensuite j'ai des macro qui tourne dessus.
Le problème est que j'ai des formule de calculs dans mon fichier à mois qui calcul le prix des pièces en tant réelle donc je ne souhaite pas important la totalité de la base de données à chaque fois mais juste les dernière données.

En gros je souhaite que ma macro regarde ce que j'ai déjà dans mon onglet et compare avec l'onglet dans le fichier des technicien les données et m'importe juste ceux que je n'ai pas.

Merci
 

geekpok

XLDnaute Nouveau
Désolé mais il y a pas mal de données a masquer pour le rendre plus neutre.
Alors l'onglet à importer se nomme HERIN et il il a une colonne nommé CaseID avec un numéro unique. c'est par rapport à cela qu'il faut vérifier si le ligne est déjà existante.
Je te rajoute le fichier en pièce jointe
 

Pièces jointes

  • test.xlsm
    90.6 KB · Affichages: 4
Dernière édition:

geekpok

XLDnaute Nouveau
Pour que je test avec mon fichier le problème est que ma source est dans un autre fichier excel est ce que le code comme il est va fonctionner ou il faut rajouter une ligne du faite que je vais ouvrir un fichier à un endroit et ensuite je copie les données manquantes
 

fanfan38

XLDnaute Barbatruc
Bonjour
ci joint la macro modifiée qui doit être sur ta feuille

VB:
Private Sub CommandButton1_Click()
  Dim derlig As Long, i As Long, dl As Long, maplage As Range
  derlig = Range("A" & Rows.Count).End(xlUp).Row
  With Sheets("Feuil1").Select 'nom de la feuille qu'ouvre ce bouton
  dl = .Range("A" & Rows.Count).End(xlUp).Row
   Set maplage = .Range("A2:A" & dl)
  End With
  Workbooks.Open Filename:="F:\Documents\nomdufichier.xlsx"
 Sheets("HERIN").Select 
  For i = 2 To derlig
    If Application.WorksheetFunction.CountIf(maplage, Range("A" & i).Value) = 0 Then
     Sheets("Feuil1").Range("A" & dl + 1).Value = Range("A" & i).Value
    End If
  Next
End Sub

A+ François
 
Dernière édition:

geekpok

XLDnaute Nouveau
Bonjour François j'ai modifié la Macro pour l'adapté à mon fichier mais cela ne fonctionne pas. La macro ouvre bien le fichier et semble compté mais les nouvelles lignes ne sont pas importé.

Voici mon code actuelle :
Sachant que mon Onglet à importer se nomme "HERIN2" et on importe les nouvelle données dans l'onglet "HERIN".

J'ai surement du effectuer une erreur dans le code
Merci à toi.

Private Sub Importation_Click()

Dim derlig As Long, i As Long, dl As Long, maplage As Range
derlig = Range("B" & Rows.Count).End(xlUp).Row
With Sheets("HERIN").Select 'nom de la feuille qu'ouvre ce bouton
dl = Sheets("HERIN").Range("B" & Rows.Count).End(xlUp).Row
Set maplage = Sheets("HERIN").Range("B2:B" & dl)
End With
Workbooks.Open Filename:="S:\Repair\INFOS COMMUNES\HERIN 2\HERIN2.xlsm"
Sheets("HERIN2").Select
For i = 2 To derlig
If Application.WorksheetFunction.CountIf(maplage, Range("B" & i).Value) = 0 Then
Sheets("HERIN2").Range("B" & dl + 1).Value = Range("B" & i).Value
End If
Next
End Sub
 

fanfan38

XLDnaute Barbatruc
Bonjour
Ci joint la macro simplifiée et modifiée....
VB:
Private Sub CommandButton1_Click()
  Dim derlig As Long, i As Long, dl As Long, maplage As Range
  Workbooks.Open Filename:="S:\Repair\INFOS COMMUNES\HERIN 2\HERIN2.xlsm"
  derlig = Sheets("HERIN2").Range("B" & Rows.Count).End(xlUp).Row
  dl = Sheets("HERIN").Range("B" & Rows.Count).End(xlUp).Row
  Set maplage = Sheets("HERIN").Range("B2:B" & dl)
  For i = 2 To derlig
   If Application.WorksheetFunction.CountIf(maplage, Sheets("HERIN2").Range("B" & i).Value) = 0 Then
     dl = dl + 1
     Sheets("HERIN").Range("B" & dl).Value = Sheets("HERIN2").Range("B" & i).Value
   End If
  Next
end sub

A+ François
 

fanfan38

XLDnaute Barbatruc
Tu te mets sur la feuille HERIN (normalement c'est là qu'est le bouton)
Ensuite tu vas sur la macro
tu appuies sur f8 autant de fois que nécessaire
pour avoir le message d'erreur et tu me dis quelle ligne est en erreur
A+ François
 

Discussions similaires

Réponses
5
Affichages
139

Statistiques des forums

Discussions
312 198
Messages
2 086 126
Membres
103 127
dernier inscrit
willwebdesign