Mettre a jour et completer un classeur VBA EXCEL

ney_ney25 Messages postés 9 Date d'inscription   Statut Membre Dernière intervention   -  
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Cette demande est dédiées a toutes âmes charitable !

N'ayant jamais eu l'occasion de travailler sur le langage VBA, j'ai malgré tout, tenté d'essayé de comprendre mais je dois avoué que les macros et moi maintenant ça n'est pas vraiment une histoire d'amour.. :p n tant qu'apprenti on ma demandé de faire une macro qui permettrait de mettre a jour un fichier xlsm en local via un autre fichier excel qui, lui , est exporté depuis une base de donnée mais également de rajouter les nouvelles lignes à la suite dans mon fichier en local.

Je m'explique, mon fichier en local contient des "tickets incidents" qui datent d'il y a plusieurs mois. Et tous les lundi je dois :

1) faire un export de la base de donnée
2) rajouter à la suite de mon fichier en local ( à partir de la première ligne vierge) les nouveau ticket qui ont été créés la semaine précédente
3) mettre ajour les autres tickets si des informations ont été modifiées ( ex : si un ticket passe d'un état "en cours" à un état "clos" )


les étapes 2 et 3 seraient les fonctions que devrait faire ma macro ..

J'avais pensé de prendre le numéro d'id existant pour chaque ticket comme référence pour comparer etc ..

J'espère avoir été assez clair sinon n'hésité pas :)

merci d'avance vraiment à tous ceux qui prendront le temps de me répondre ! je compte un peu beaucoup sur votre aide ...

voila un "debut " pas forcement juste de la macro présente sur mon fichier en local ..



Option Explicit


Sub Comparaison()

'Evite de voir les opérations intermédiaire sur les fichiers
Application.ScreenUpdating = False
'déclarations des variables
Dim i As Integer
Dim j As Integer
Dim Trouve As Integer
Dim nom_fichier As String
Dim chemin_fichier As String




i = 2 'initialisation du compteur à 2 car la ligne 1 contient l'en-tête de chaque donnée
chemin_fichier = "C:\Users\MOHA\Desktop\macro\"
nom_fichier = "export.xlsm"
Workbooks.Open chemin_fichier & nom_fichier


While (Workbooks("local.xlsm").Sheets("Feuil1").Cells(i, 1).Value <> "") 'tant que dans le fichier local la cellule en (ligne i, colonne A) n'est pas vide
j = 2
Trouve = 0 'cette variable sert d'indicateur si c'est à 0 on a rien trouvé ou 1 on a trouvé la cellule correspondante


While (Workbooks("export.xlsm").Sheets("Feuil1").Cells(j, 1).Value <> "") And (Trouve = 0)

'si la cellule du fichier export correspond à celle de local alors
If (Workbooks("export.xlsm").Sheets("Feuil1").Cells(j, 1).Value = _
Workbooks("local.xlsm").Sheets("Feuil1").Cells(i, 1).Value) Then
Trouve = 1

'On passe à la ligne suivante de export

j = j + 1

Else

'On copie le contenu à la ligne actuelle dans une nouvelle ligne



End If
Wend

i = i + 1
Wend


End Sub











Merci d'avanceeeeeeeeeeeeeeeeeee :)
A voir également:

2 réponses

f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Bonjour,

Au lieu de parcourir le fichier export, je ferai plutot une copie de l'onglet feuil1 dans local.xlm, pour eviter les aller/retour classeurs

    'recherche onglet export et suppression
For Each wh In Worksheets
If wh.Name = "export" Then
Application.DisplayAlerts = False
Sheets("export").Delete
Application.DisplayAlerts = True
Exit For
End If
Next
chemin_fichier = "C:\Users\MOHA\Desktop\macro\"
nom_fichier = "export.xlsm"
Workbooks.Open chemin_fichier & nom_fichier
Sheets("Feuil1").Copy Before:=Workbooks("local.xlsm").Sheets(1)
ActiveSheet.Name = "Export"
Windows(nom_fichier).Activate
ActiveWorkbook.Close False


question:

Peut-il y avoir de nouveaux tickets ouverts dans export avant le dernier inscrit dans local ?????

A+
0
ney_ney25 Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
 
Salut f894009,

je voudrais tout d'abord te remercier pour m'avoir répondu aussi rapidement, t'assure vraiment :)

je voudrais s'il te plait si possible que tu m'explique un peu ton code car j'ai pas tous compris, pour pas dire rien ... je suis vraiment débutant en vba .. ton code permettrait le copier-coller des nouveau ticket à la suite de mon fichier en local ainsi que la mise a jour des tickets existant ?

J'ai vu qu'il y avait une suppression ??

et je n'ai pas vraiment compris ta question .. peut tu m'eclairer STP :)))

merci d'avance et merci encore pour ta réponse !

A+
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Re,

le code que j'ai ecrit permet de:
_ supprimer l'onglet export du fichier local.xlsm s'il est present
_ copier l'onglet feuil1 du fichier export.xlsm dans le fichier local.xlsm et de le nommer export ceci afin de faciliter la suite de la programmation

Peut-il y avoir de nouveaux tickets ouverts dans export avant le dernier inscrit dans local ????? Dans le fichier local.xlsm onglet feuil1, si vous avez deja des tickets enregistres, est-ce que dans le fichier export.xlsm suivant, il y aura des tickets enregitres avant le dernier de l'onglet feuil1 de local.xlsm

ou

comment sont enregistres les tickets dans la feuil1 de export, par chronologie de date ou par chronologie des tickets (qui peut etre la meme que les dates) ou portnawak
0
ney_ney25 Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
 
Re,

beh ecoute je ne pense pas que ton code soit approprié car le fichier que je vais exporter va contenir également des ticket que j'ai deja dans mon fichier en local donc il y aura des doublons .. et on ne saura pas quelle tickets est le bon si des champs on été modifier ..

comprend tu ?
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Re,

l'onglet export ne servira qu'a faire la recherche des tickets nouveaux a transferer et a la mise a jour des status des tickets, il pourra meme etre supprimer en fin de traitement. L'objet de cette manip, c'est de n'avoir qu'un seul fichier a tester, rien a voir avec ce que vous avez ecrit sur ce sujet
0
ney_ney25 Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
 
re,

je teste donc ton code de suite et je te tiens au courant

mercii beaucoup
0
ney_ney25 Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
 
dois-je supprime mon code et copier le tiens ?
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Re,

et pour la suite ?????? reponse a ma question sur

Peut-il y avoir de nouveaux tickets ouverts dans export avant le dernier inscrit dans local ?????

parce que le code n'est pas inclu pour l'instant
0