VBA mise à jour tableau excel

hussein83 Messages postés 26 Statut Membre -  
hussein83 Messages postés 26 Statut Membre -
Bonjour,
Je cherche à mettre automatique à jour une feuille Excel, je sais que cela peut se faire avec une macro, or je suis nul en VBA alors si vous voulez bien m’aider svp…
En fait j’ai un tableau avec une centaine de contrats de prêts auquel une dizaine de feuilles sont liées avec un tas de calculs.
Dans un autre tableau, les données sont mises à jour, des contrats arrivent à échéances (c.-à-d. disparaissent) ainsi que nouveaux contrats apparaissent.
Je ne peux pas faire un « copier coller »car dans la même feuille, des cellules dépendent du tableau, elles contiennent des valeurs constantes(saisies, pas de possibilité de mettre des formules d’où mon problème).
Ce que je fais, c’est de comparer, les valeurs de la première colonne, chaque ligne d’ancien tableau avec toutes les lignes du nouveau:
- je supprime les contrats qui existent plus dans l'ancien tableau.
- Je rajoute les nouvelles lignes ( nouveaux contrats )toujours à la fin d'ancien tableau.
- Et surtout de mettre à jour les contrats toujours existants (en écrasant les cellules « et ne pas les lignes entières car il y a les valeurs constantes sur les mêmes lignes) d’ancien tableau en faisant copier coller).

et voila mon ancien tableau est à jour mais après des heures de travail comme vous pouvez constater repetitif et surtout très nul

alors est-ce possible de traduire ces trois actions sous forme de macro.

Voici un extrait, je ne pense pas qu’il vous servira à quelque chose

https://www.cjoint.com/?bspYLvMWWI

je vous remercie d’avance
A voir également:

2 réponses

Bidouilleu_R Messages postés 1209 Statut Membre 295
 
' attention je demande une petite vérification
' je n'ai pas fait la troisième partie
Et surtout de mettre à jour les contrats toujours existants (en écrasant les cellules « et ne pas les lignes entières car il y a les valeurs constantes sur les mêmes lignes) d’ancien tableau en faisant copier coller).

mais je pense que tu peux le faire

Sub supprimer()
Dim Xligne, Kligne As Integer
Dim C As Variant
Dim Trouve As Boolean

Sheets("anciennes données").Select
Set d = Range("a3") 'je définis un objet cellule
Range("a2").Select
Xligne = Range("A2", Selection.End(xlDown)).Rows.Count - 1

Sheets("nouvelle données").Select
Kligne = Range("A2", Selection.End(xlDown)).Rows.Count - 1
i = 1
While i < Xligne
Trouve = False ' initialise à chaque ligne
For Each C In Sheets("nouvelle données").Range("A2:A" & Kligne)
If d.Value = C.Value Then touve = True
Next
If Not Trouve Then
'on a parcouru la liste
'pas de concordance
' on efface la ligne ( objet D)
d.EntireRow.Delete
i = i - 1 'j'ai supprimée une ligne
End If

i = i + 1
' je redéfinis l'objet
Set d = Sheets("anciennes données").Range("A2").Offset(0, i)
Wend

End Sub

Sub Ajout_des_contrats()

Dim Xligne, Kligne As Integer
Dim C As Variant
Dim Trouve As Boolean

Sheets("nouvelle données").Select
Set d = Range("a3") 'je définis un objet cellule
Range("a2").Select
Xligne = Range("A2", Selection.End(xlDown)).Rows.Count - 1

Sheets("anciennes données").Select
Kligne = Range("A2", Selection.End(xlDown)).Rows.Count - 1
i = 1
While i < Xligne
Trouve = False ' initialise à chaque ligne
For Each C In Sheets("anciennes données").Range("A2:A" & Kligne)
If d.Value = C.Value Then touve = True
Next
If Not Trouve Then
Sheets("anciennes données").Select
Range("A2").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Select
ActiveCell.Value = d.Value
ActiveCell.offsett(0, 1) = d.offsett(0, 1).Value ' col B
ActiveCell.Offset(0, 2) = d.Offset(0, 2).Value ' col C

End If

i = i + 1
' je redéfinis l'objet
Set d = Sheets("nouvelle données").Range("A2").Offset(0, i)
Wend

End Sub
0
hussein83 Messages postés 26 Statut Membre
 
j'ai déjà fait l'autre partie, il suffit d'adapter les deux parties et j'espere que ça marchera..

je te dois beaucoup mon gars. grâce à toi je ne perderai plus le temps à faire la mise à jour manuellement

alors chapeau bas
0
Bidouilleu_R Messages postés 1209 Statut Membre 295
 
Alors je suis content pour toi.

Si c'est ok pense à mettre résolu
0
hussein83 Messages postés 26 Statut Membre
 
je ne suis pas arrivé à le faire....
ce tu veux voir ce que j'ai fait voici le lien
http://www.commentcamarche.net/forum/affich 10595612 vba inserer lignes a la fin d un tablo excel

tu n'a qu'à télécharger le fichier et d'executer les macros, ça tourne pas mal sauf que ce n'est pas encore términé....

si on peut trouver une solution ça sera enorme car en fait je suis actuellement en stage et apparament tout le monde ici fait la mise à jour de ses tableaux maunellement.....
0