VBA mise à jour tableau excel

Fermé
hussein83 Messages postés 23 Date d'inscription jeudi 8 janvier 2009 Statut Membre Dernière intervention 21 janvier 2009 - 20 janv. 2009 à 11:40
hussein83 Messages postés 23 Date d'inscription jeudi 8 janvier 2009 Statut Membre Dernière intervention 21 janvier 2009 - 21 janv. 2009 à 09:52
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 1181 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 12 juillet 2012 294
20 janv. 2009 à 16:06
' 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 23 Date d'inscription jeudi 8 janvier 2009 Statut Membre Dernière intervention 21 janvier 2009
20 janv. 2009 à 16:15
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 1181 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 12 juillet 2012 294
21 janv. 2009 à 08:44
Alors je suis content pour toi.

Si c'est ok pense à mettre résolu
0
hussein83 Messages postés 23 Date d'inscription jeudi 8 janvier 2009 Statut Membre Dernière intervention 21 janvier 2009
21 janv. 2009 à 09:52
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