Bonjour à tous.
J'ai une application qui fonction deja bien mais que je voudrais améliorer.
Il s'agit de copier des données se trouvant dans la colonne B de la sheet1 vers la dernière colonnes non-vide de la sheet2. Oui, c'est simple, je le sais. Mais mon souci est que je veux que les données copiées soient colées par lot de 10 au maximim et que, avant chaque collage, qu'il y ait un titre "serie nº " avant le collage des 10 premieres données, et ainsi de suite.
Certains me dironT: ChatGPT. Malheureusement il n'a pas pu m'aider. L'humain reste le meilleur.
Merci d'avance pour vos contributions.
voici le code que je souhaite améliorer:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65 Sub copyPasteData() ' Création et définition des variables Dim currCellHist As Range Dim currentCell As Range Dim lastEmptyCell As Range Dim targetSheet As Worksheet Dim wsHistorico As Worksheet Dim isProtected As Boolean ' Mot de passe de protection Dim psw As String psw = Password ' Référence à la feuille principal (feuil1) Set wsPrincipal = ThisWorkbook.Sheets("Principal") ' Référence à la feuille cible (feuil2) Set targetSheet = ThisWorkbook.Sheets("Archive") ' Definition de la variable isProtected isProtected = targetSheet.ProtectContents ' Sélectionnez la cellule active actuelle Set currentCell = ActiveCell Set currCellHist = Sheets("Archive").Range("B5") 'On désactive temporairement les événements de la macro Application.EnableEvents = False ' Désactiver les événements ' Activation de la feuil l pour la deprotéger Sheets("Archive").Activate If isProtected Then ' Feuille protégée, la déprotéger targetSheet.Unprotect password:=psw End If ' On rentre sur la feuil Principal pour copier les données Sheets("Principal").Activate ' Copie des données à archiver Sheets("Principal").Range("B4").Select Range(Selection, Selection.End(xlDown)).Copy ' Sheets("Archive").Activate ' Selectionne la dernieres cellule vide de la feuil Archive Range("B5").Select Selection.End(xlToRight).Offset(0, 1).Select ' Copie des données dans a partir de la dernieres cellule vide de la feuil Archive Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False ' Vider le presse-papiers après avoir effectué la copie Application.CutCopyMode = False ' Protéger à nouveau la feuil Archive avec le mot de passe targetSheet.Protect password:=psw 'On réactive temporairement les événements de la macro Application.EnableEvents = True ' Réactiver les événements End Sub
Partager