Bonjour,
Je code une macro qui me permet de copier coller des infos contenues dans des colonnes (sur une première feuille contenant le résultat d'une extraction d'une base de paie) puis de les recopier dans un onglet individuel ; ce sont des infos sur des salariés, je parcours ma 1ère colonne 'nom salarié' pour boucler dessus et aller copier/coller les infos qui m'intéressent dans chaque onglet individuel de salarié
Je voudrais que les infos collées le soient en collage spécial valeur ;
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 Private Sub CommandButton1_Click() Range("A1").Activate ' je compte le nombre de cellules non vides dans ma 1ère colonne ' ce nombre me sert ensuite pour ma boucle while/wend Dim nbcells As Integer nbcells = Application.WorksheetFunction.CountA(Feuil1.Range("$A:$A")) Dim x As Integer x = 1 While x < nbcells 'parcours de la colonne "NOMS" x = x + 1 Cells(x, 2).Select Dim horaire_salarie As Double 'copie de la valeur... horaire_salarie = ActiveCell.Value Selection.Copy 'retour sur la valeur "NOM" ActiveCell.Offset(0, -1).Select 'activation de l'onglet correspondant au nom Sheets(ActiveCell.Value).Activate ' selection de la colonne horaire et recherche de la 1ère cellule vide ActiveSheet.Range("E6").Activate Selection.End(xlDown).Select Selection.Offset(1, 0).Select ' collage ActiveSheet.Paste ' retour sur ma première feuille pour poursuivre la boucle Sheets("EXTRACTION_GA").Activate Range("A1").Activate Wend End Sub
or si j'essaie à la place de ActiveSheet.Paste:
j'ai un message d'erreur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 ActiveSheet.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks_:=False, Transpose:=False
je ne sais pas comment appliquer PasteSpecial dans ce cas ; j'ai fait un enregistrement de macro pour avoir le code d'un collage spécial valeur, mais sur une cellule donnée, par exemple :
Je suppose que la méthode PasteSpecial n'est pas gérée par l'objet ActiveSheet ? Donc j'essaie de remplacer ActiveSheet.Paste par Selection.Paste, et ça ne marche pas
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Range("A1").Select Selection.Copy Range("A2").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks_:=False, Transpose:=False:
je ne comprends pas pourquoi je ne peux pas coller par Selection.Paste au lieu de ActiveSheet.Paste ; pourtant après avoir désigné la première cellule vide comme cellule de destination pour le collage, j'ai bien une cellule sélectionnée ?
désolé si je ne suis pas très clair, je débute en VBA et je galère un peu
Merci d'avance
Pierre
Partager