Selection Plage variable à partir d'une date
Bonjour à tous,
Je souhaiterai réaliser l'opération ci-dessous en vba afin d'alléger mon fichier qui malgré l'activation des calculs manuels consomme beaucoup de ressource car ces opérations sont intégralement gérées au travers de formules complexes qui vont récupérées des informations dans une base de données située sur un autre onglet.
J'ai créé un exemple similaire et plus simple à ma problématique car le fichier source est trop lourd afin qu'il soit communiqué.
Mon fichier se présente de la façon suivante :
J'ai dans une cellule la date du jour qui s'affiche, à partir de cette information je souhaiterai développer une macro qui :
- Recherche la dernière plage de cellule qui a été copiée lors de l'activation précédente de la macro (Exemple : Période du 25/08/2019 dans le fichier joint) ;
- Copier / Coller cette plage (25/08/2019, soit cellules J10 à M13) jusqu'à la plage de cellule qui correspond à la date du jour (cellules N10 à Q13) ;
- Faire un copier / coller en valeur de la plage du début jusqu'à la date du jour - 1 jour (cellules B10 à M13), dans le but de conserver les formules de calcul uniquement dans les cellules qui correspondent à la date du jour après les opérations précédentes.
Les plages présentées ci-dessus sont variables.
J'espère que mes explications sont claires.
Merci par avance de votre retour,
Bonjour Volwerik,
Voyez si le fichier joint peut vous aider, une alternative par formules
Bonjour njhub,
Merci beaucoup pour ton retour, effectivement cela fonctionne bien et mon fichier source fonctionne d'une façon similaire.
Mon problème est que dans mon fichier source j'ai 1600 colonnes sur environ 100 lignes avec des formules matricielles et à chaque ouverture cela demande beaucoup de ressource et du temps pour ouvrir le fichier.
Le fichier va s'alourdir avec le temps alors je souhaiterai convertir toutes ces formules en vba afin d'alléger mon fichier.
Le fichier communiqué est un exemple simplifié qui me permettrait de résoudre mon problème cependant mes connaissances en vba sont limitées.
J'essaye de traduire le texte suivant en code qui devrait me permettre de faire ce que je souhaite faire cependant je bloque rapidement
Tant que la date de la ligne 8 est inférieur à la date du jour ;
Copier la plage B10 à E13 jusqu'à atteindre les colonnes avec la date du jour.
J'ai commencé à écrire ce code mais je bloque sur le coller :
Sub Copiercollerformulegestionstock()
Dim DernCol As Integer
Dim Plage1 As Integer
'ma première plage = recherche de la colonne vide
DernCol = Range("B10").End(xlToRight).Column
'plage dans laquelle je vais intégrer mes formules que je souhaiterai copier sur la première colonne vide
Worksheets("Feuil1").Range("B10, E13").Copy
Do While Range("B8,U8") <= Date
Range(DernCol).Paste
Loop
End Sub
Cependant j'ai peur qu'avec ce code le collage continue plus loin que prévu. Qu'est que vous en pensez ?