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
 

fanfan38

XLDnaute Barbatruc
Bonjour
Erreur corrigée
VB:
Private Sub CommandButton1_Click()
  Application.ScreenUpdating = False
  Dim sh As Worksheet, wf As Worksheet
  Set sh = ThisWorkbook.Sheets("HERIN")
  Dim derlig As Long, i As Long, dl As Long, maplage As Range
  Workbooks.Open Filename:="S:\Repair\INFOS COMMUNES\HERIN 2\HERIN2.xlsm"
  Set wf = Workbooks("HERIN2.xlsm").Sheets("HERIN2")
  derlig = wf.Range("B" & Rows.Count).End(xlUp).Row
  dl = sh.Range("B" & Rows.Count).End(xlUp).Row
  Set maplage = sh.Range("B2:B" & dl)
  For i = 2 To derlig
   If Application.WorksheetFunction.CountIf(maplage, wf.Range("B" & i).Value) = 0 Then
     dl = dl + 1
     sh.Range("B" & dl).Value = wf.Range("B" & i).Value
   End If
  Next
  Workbooks("HERIN2.xlsm").Close
  Application.ScreenUpdating = True
End Sub

A+ François
 

geekpok

XLDnaute Nouveau
Mon fichier source s'ouvre bien mais il importe rien.
J'ai tester de faire les étapes avec F8 mais je n'ai pas d'erreur. Je pense qu'il bloque sur les étapes ou il compte.
derlig = wf.Range("B" & Rows.Count).End(xlUp).Row
dl = sh.Range("B" & Rows.Count).End(xlUp).Row
Set maplage = sh.Range("B2:B" & dl)
 

fanfan38

XLDnaute Barbatruc
Bonjour
Est ce que tu es bien sur la feuille HERIN quand tu lances la macro?
tu te mets sur l ligne: For i = 2 To derlig et tu appuie sur f9
tu lances la macro
celle ci va s'arrêter à la ligne ci dessus
tu places ta souris sur derlig=.... et tu me dis la valeur de derlig
idem pour dl
ensuite tu clic sur f8 plusieurs fois et tu regardes si il va sur la ligne dl=dl+1

A+ François
 

fanfan38

XLDnaute Barbatruc
Alors là je comprends pas... vu que c'est la ligne après dl=dl+1 qui fait la copie
sh.Range("B" & dl).Value = wf.Range("B" & i).Value
soit Sheets("HERIN"). cellule colonne B à la dernière ligne=feuille HERIN2.colonne b ligne en cours (i)
derlig c'est Herin2 alors que tu copie Herin2 sur Herin
donc théoriquement derlig devrait être plus grand que dl
Faudra me faire suivre ton fichier HERIN
A+ François
PS tu me dis 417 et 457 et tu as un 3457
regarde à la ligne 3457 tu as certainement des données
 
Dernière édition:

fanfan38

XLDnaute Barbatruc
Oh l'usine à gaz...
Pour moi il y avait un problème avec la feuille HERIN...
Ce qui m'a mis la puce à l'oreille c'est le curseur de droite...
et en plus dès qu'on faisait quelque chose ça durer une plombe
Et tu au courant que tu as 2 liaisons sur cette page (que j'ai laissé) => données modifier les liaisons
Il n'y a que la feuille HERIN dans le fichier ci joint
de plus il y a beaucoup de cellule vide dans la colonne b
je t'ai fait une boucle qui recopie la ligne (de A à N)
A+ François
Ps ATTENTION! dans la macro j'ai mis une apostrophe à enlever
' Workbooks.Open Filename:="C:\Users\AMoreau\Desktop\HERIN\HERIN2.xlsm"
 

Pièces jointes

  • HERIN5.xlsm
    111.5 KB · Affichages: 7
Dernière édition:

Discussions similaires

Réponses
5
Affichages
142

Statistiques des forums

Discussions
312 215
Messages
2 086 321
Membres
103 178
dernier inscrit
BERSEB50