[Réglé] Copier une feuille vers une autre avec incrémentation ? Macro ? VBA ?

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Service Numérique

XLDnaute Nouveau
Bonjour,

Après avoir parcouru Google de fond en comble, et ne trouvant pas de solution exacte à mon problème, je m'en remets à votre science.

Je possède un tableau récapitulatif ("Récap détaillé") avec des cellules qui vont chercher des données dans une feuille nommée "INTRANET".
Le problème est que la feuille "INTRANET" s'actualise toutes les 5 min (en fonction du statut des commandes).

Je souhaiterai, SI POSSIBLE, via un bouton, COPIER la feuille "INTRANET" vers "COMMANDES" afin que mes cellules fassent références à des données "fixes".

Je souhaiterai donc que les données de "INTRANET" S'INCRÉMENTENT dans "COMMANDES" (en évitant bien évidemment les doublons).

Plus d'infos dans le fichier en P.J.

Merci pour votre aide qui m'a permis de bien avancer ce tableau qui représente un grand gain de temps pour moi.
 

Pièces jointes

Le seul hic, c'est que la macro m'incrémente TOUTES les données et donc créée des doublons
Ben oui. Ca prend à chaque fois toute la table. Ne prendre qu'une selection est bien plus compliqué.
Ou alors (attend 2 mn...)

Voila:
Ajoute
Range("Commandes!A:H").RemoveDuplicates Columns:=Array(1, 2, 3, 4, 5, 6, 7, 8), Header:=xlYes
juste avant le End Sub de Recopier
 
Ben oui. Ca prend à chaque fois toute la table. Ne prendre qu'une selection est bien plus compliqué.
Ou alors (attend 2 mn...)

Voila:
Ajoute
Range("Commandes!A:H").RemoveDuplicates Columns:=Array(1, 2, 3, 4, 5, 6, 7, 8), Header:=xlYes
juste avant le End Sub de Recopier

PARFAIT !
Par contre (oui, il y a toujours un hic), ça ne garde pas le format de cellule en "TEXTE". Du coup, si je le change manuellement, il incrémente...

Bon, on verra lundi.

Merci pour tout et bon week-end.
 
Hello,

copie colle ceci à la place de l'ancien code:

Sub Recopier()
'Sheets("Intranet").Select
Der = Range("Commandes!A1").End(xlDown).Row
If Der > 300000 Then Der = 1
Der2 = Range("Intranet!A1").End(xlDown).Row
'Range("Commandes!A" & Der + 1 & ":H" & Der + Der2 - 1) = Range("Intranet!A2:H" & Der2).Value
Range("Intranet!A2:H" & Der2).Copy Destination:=Range("Commandes!A" & Der + 1 & ":H" & Der + Der2 - 1)
Range("Commandes!A:H").RemoveDuplicates Columns:=Array(1, 2, 3, 4, 5, 6, 7, 8), Header:=xlYes
End Sub
 
Hello,

copie colle ceci à la place de l'ancien code:

Sub Recopier()
'Sheets("Intranet").Select
Der = Range("Commandes!A1").End(xlDown).Row
If Der > 300000 Then Der = 1
Der2 = Range("Intranet!A1").End(xlDown).Row
'Range("Commandes!A" & Der + 1 & ":H" & Der + Der2 - 1) = Range("Intranet!A2:H" & Der2).Value
Range("Intranet!A2:H" & Der2).Copy Destination:=Range("Commandes!A" & Der + 1 & ":H" & Der + Der2 - 1)
Range("Commandes!A:H").RemoveDuplicates Columns:=Array(1, 2, 3, 4, 5, 6, 7, 8), Header:=xlYes
End Sub

MERCI pour tout ce que tu as fait !

Sujet clos pour ma part.
Bonne continuation.😉
 
Hello,

Entre temps j'ai un nouveau code qui permet de mieux gérer les temporisations et exécutions régulières.
La macro s’exécute en arrière plan, en laissant la main possible à l'utilisateur.
Si ca peut t'aider ou te servir...
C'est plus propre que la tempo précédente 😉 😛
 

Pièces jointes

Hello,

Entre temps j'ai un nouveau code qui permet de mieux gérer les temporisations et exécutions régulières.
La macro s’exécute en arrière plan, en laissant la main possible à l'utilisateur.
Si ca peut t'aider ou te servir...
C'est plus propre que la tempo précédente 😉 😛

Bonjour D.D.,

Ca tombe bien, je l'ai modifiée cette semaine en rajoutant un évènement "DoEvents" car il me semble qu'elle me fait bugguer Excel...

Je vais tester ça...
Je te remercie.
D'ailleurs, que rajoute-t-elle ? A quoi servent les boutons "on" et "off" ? A appeler la macro ?

Merci et bonne journée.
 
Code:
Sub Action()
    While Fct_ON = True
        DoEvents
        ActiveSheet.[A1] = Now
    Wend
End Sub


J'insère ça où ?

VB:
Sub Recopier()
'Sheets("Intranet").Select
Der = Range("Commandes!A1").End(xlDown).Row
If Der > 300000 Then Der = 1
Der2 = Range("Intranet!A1").End(xlDown).Row
'Range("Commandes!A" & Der + 1 & ":H" & Der + Der2 - 1) = Range("Intranet!A2:H" & Der2).Value
Range("Intranet!A2:H" & Der2).Copy Destination:=Range("Commandes!A" & Der + 1 & ":H" & Der + Der2 - 1)
Range("Commandes!A:I").RemoveDuplicates Columns:=Array(1, 2, 3, 4, 5, 6, 7, 8), Header:=xlYes
End Sub
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour