VBA mise à jour tableau excel
hussein83
Messages postés
26
Statut
Membre
-
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
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:
- VBA mise à jour tableau excel
- Mise a jour chrome - Accueil - Applications & Logiciels
- Mise a jour windows 10 - Accueil - Mise à jour
- Tableau word - Guide
- Trier un tableau excel - Guide
- Mise en forme conditionnelle excel - Guide
2 réponses
' 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
' 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
Alors je suis content pour toi.
Si c'est ok pense à mettre résolu
Si c'est ok pense à mettre résolu
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.....
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.....
je te dois beaucoup mon gars. grâce à toi je ne perderai plus le temps à faire la mise à jour manuellement
alors chapeau bas