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é

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
Je voudrais que les infos collées le soient en collage spécial valeur ;
or si j'essaie à la place de ActiveSheet.Paste:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
ActiveSheet.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks_:=False, Transpose:=False
j'ai un message d'erreur
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 :
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 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 :
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