un collage spécial en macro

cococh

XLDnaute Occasionnel
Bonjour a tous,

J'ai un soucis sur une code VBA.

voici le code actuel:

Code:
ub trier()


Sheets("BD").Select
Sheets("boncommande").Range("A22:S250").ClearContents
Range("L18").Select
Sheets("boncommande").Select
Range("A1").Select
    Selection.Copy
    ActiveWindow.ScrollRow = 2
    ActiveWindow.ScrollRow = 4
    ActiveWindow.ScrollRow = 6
    ActiveWindow.ScrollRow = 8
    ActiveWindow.ScrollRow = 10
    ActiveWindow.ScrollRow = 12
    ActiveWindow.ScrollRow = 14
    ActiveWindow.ScrollRow = 17
    ActiveWindow.ScrollRow = 19
    ActiveWindow.ScrollRow = 21
    ActiveWindow.ScrollRow = 24
    ActiveWindow.ScrollRow = 26
    ActiveWindow.ScrollRow = 29
    ActiveWindow.ScrollRow = 31
    ActiveWindow.ScrollRow = 33
    ActiveWindow.ScrollRow = 37
    ActiveWindow.ScrollRow = 39
    ActiveWindow.ScrollRow = 42
    ActiveWindow.ScrollRow = 46
    ActiveWindow.ScrollRow = 49
    ActiveWindow.ScrollRow = 53
    ActiveWindow.ScrollRow = 56
    ActiveWindow.ScrollRow = 60
    ActiveWindow.ScrollRow = 63
    ActiveWindow.ScrollRow = 67
    ActiveWindow.ScrollRow = 70
    ActiveWindow.ScrollRow = 73
    ActiveWindow.ScrollRow = 77
    ActiveWindow.ScrollRow = 80
    ActiveWindow.ScrollRow = 83
    ActiveWindow.ScrollRow = 86
    ActiveWindow.ScrollRow = 88
    ActiveWindow.ScrollRow = 91
    ActiveWindow.ScrollRow = 93
    ActiveWindow.ScrollRow = 96
    ActiveWindow.ScrollRow = 97
    ActiveWindow.ScrollRow = 100
    ActiveWindow.ScrollRow = 102
    ActiveWindow.ScrollRow = 104
    ActiveWindow.ScrollRow = 106
    ActiveWindow.ScrollRow = 107
    ActiveWindow.ScrollRow = 109
    ActiveWindow.ScrollRow = 110
    ActiveWindow.ScrollRow = 112
    ActiveWindow.ScrollRow = 114
    ActiveWindow.ScrollRow = 116
    ActiveWindow.ScrollRow = 118
    ActiveWindow.ScrollRow = 120
    ActiveWindow.ScrollRow = 122
    ActiveWindow.ScrollRow = 123
    ActiveWindow.ScrollRow = 125
    ActiveWindow.ScrollRow = 126
    ActiveWindow.ScrollRow = 127
    ActiveWindow.ScrollRow = 128
    ActiveWindow.ScrollRow = 129
    ActiveWindow.ScrollRow = 130
    ActiveWindow.ScrollRow = 131
    ActiveWindow.ScrollRow = 132
    ActiveWindow.ScrollRow = 133
    ActiveWindow.ScrollRow = 134
    ActiveWindow.ScrollRow = 135
    ActiveWindow.ScrollRow = 136
    ActiveWindow.ScrollRow = 137
    ActiveWindow.ScrollRow = 138
    ActiveWindow.ScrollRow = 139
    ActiveWindow.ScrollRow = 140
    ActiveWindow.ScrollRow = 141
    ActiveWindow.ScrollRow = 142
    ActiveWindow.ScrollRow = 144
    ActiveWindow.ScrollRow = 145
    ActiveWindow.ScrollRow = 146
    ActiveWindow.ScrollRow = 148
    ActiveWindow.ScrollRow = 150
    ActiveWindow.ScrollRow = 151
    ActiveWindow.ScrollRow = 152
    ActiveWindow.ScrollRow = 153
    ActiveWindow.ScrollRow = 154
    ActiveWindow.ScrollRow = 155
    ActiveWindow.ScrollRow = 156
    ActiveWindow.ScrollRow = 157
    ActiveWindow.ScrollRow = 158
    ActiveWindow.ScrollRow = 159
    ActiveWindow.ScrollRow = 160
    ActiveWindow.ScrollRow = 161
    ActiveWindow.ScrollRow = 162
    ActiveWindow.ScrollRow = 163
    ActiveWindow.ScrollRow = 164
    ActiveWindow.ScrollRow = 165
    ActiveWindow.ScrollRow = 166
    ActiveWindow.ScrollRow = 167
    ActiveWindow.ScrollRow = 168
    ActiveWindow.ScrollRow = 167
    ActiveWindow.ScrollRow = 166
    ActiveWindow.ScrollRow = 163
    ActiveWindow.ScrollRow = 161
    ActiveWindow.ScrollRow = 160
    ActiveWindow.ScrollRow = 159
    ActiveWindow.ScrollRow = 157
    ActiveWindow.ScrollRow = 156
    ActiveWindow.ScrollRow = 155
    ActiveWindow.ScrollRow = 154
    ActiveWindow.ScrollRow = 153
    ActiveWindow.ScrollRow = 152
    ActiveWindow.ScrollRow = 151
    ActiveWindow.ScrollRow = 152
    ActiveWindow.ScrollRow = 153
    ActiveWindow.ScrollRow = 154
    ActiveWindow.ScrollRow = 155
    ActiveWindow.ScrollRow = 156
    ActiveWindow.ScrollRow = 157
    ActiveWindow.ScrollRow = 158
    ActiveWindow.ScrollRow = 159
    ActiveWindow.ScrollRow = 160
    ActiveWindow.ScrollRow = 161
    ActiveWindow.ScrollRow = 162
    ActiveWindow.ScrollRow = 163
    ActiveWindow.ScrollRow = 164
    ActiveWindow.ScrollRow = 165
    ActiveWindow.ScrollRow = 166
    ActiveWindow.ScrollRow = 167
    ActiveWindow.ScrollRow = 168
    ActiveWindow.ScrollRow = 169
    ActiveWindow.ScrollRow = 170
    ActiveWindow.ScrollRow = 171
    ActiveWindow.ScrollRow = 172
    ActiveWindow.ScrollRow = 173
    ActiveWindow.ScrollRow = 174
    ActiveWindow.ScrollRow = 175
    ActiveWindow.ScrollRow = 176
    ActiveWindow.ScrollRow = 177
    ActiveWindow.ScrollRow = 178
    ActiveWindow.ScrollRow = 179
    ActiveWindow.ScrollRow = 180
    ActiveWindow.ScrollRow = 181
    ActiveWindow.ScrollRow = 182
    ActiveWindow.ScrollRow = 183
    ActiveWindow.ScrollRow = 184
    ActiveWindow.ScrollRow = 185
    ActiveWindow.ScrollRow = 186
    ActiveWindow.ScrollRow = 187
    ActiveWindow.ScrollRow = 188
    ActiveWindow.ScrollRow = 189
    ActiveWindow.ScrollRow = 190
    ActiveWindow.ScrollColumn = 2
    ActiveWindow.ScrollColumn = 3
    Range("A22:T229").Select
    Range("T229").Activate
    ActiveWindow.ScrollColumn = 2
    ActiveWindow.ScrollColumn = 3
    ActiveWindow.ScrollColumn = 2
    ActiveWindow.ScrollColumn = 1
    ActiveSheet.Paste
    ActiveWindow.ScrollColumn = 11
    ActiveWindow.ScrollColumn = 8
    ActiveWindow.ScrollColumn = 6
    ActiveWindow.ScrollColumn = 4
    ActiveWindow.ScrollColumn = 2
    ActiveWindow.ScrollColumn = 1
    ActiveWindow.ScrollRow = 205
    ActiveWindow.ScrollRow = 204
    ActiveWindow.ScrollRow = 203
    ActiveWindow.ScrollRow = 202
    ActiveWindow.ScrollRow = 200
    ActiveWindow.ScrollRow = 199
    ActiveWindow.ScrollRow = 198
    ActiveWindow.ScrollRow = 197
    ActiveWindow.ScrollRow = 196
    ActiveWindow.ScrollRow = 194
    ActiveWindow.ScrollRow = 193
    ActiveWindow.ScrollRow = 191
    ActiveWindow.ScrollRow = 189
    ActiveWindow.ScrollRow = 187
    ActiveWindow.ScrollRow = 185
    ActiveWindow.ScrollRow = 182
    ActiveWindow.ScrollRow = 179
    ActiveWindow.ScrollRow = 176
    ActiveWindow.ScrollRow = 172
    ActiveWindow.ScrollRow = 169
    ActiveWindow.ScrollRow = 166
    ActiveWindow.ScrollRow = 163
    ActiveWindow.ScrollRow = 159
    ActiveWindow.ScrollRow = 156
    ActiveWindow.ScrollRow = 152
    ActiveWindow.ScrollRow = 148
    ActiveWindow.ScrollRow = 144
    ActiveWindow.ScrollRow = 140
    ActiveWindow.ScrollRow = 135
    ActiveWindow.ScrollRow = 130
    ActiveWindow.ScrollRow = 127
    ActiveWindow.ScrollRow = 123
    ActiveWindow.ScrollRow = 119
    ActiveWindow.ScrollRow = 115
    ActiveWindow.ScrollRow = 111
    ActiveWindow.ScrollRow = 108
    ActiveWindow.ScrollRow = 105
    ActiveWindow.ScrollRow = 102
    ActiveWindow.ScrollRow = 99
    ActiveWindow.ScrollRow = 96
    ActiveWindow.ScrollRow = 93
    ActiveWindow.ScrollRow = 90
    ActiveWindow.ScrollRow = 87
    ActiveWindow.ScrollRow = 84
    ActiveWindow.ScrollRow = 80
    ActiveWindow.ScrollRow = 77
    ActiveWindow.ScrollRow = 74
    ActiveWindow.ScrollRow = 71
    ActiveWindow.ScrollRow = 68
    ActiveWindow.ScrollRow = 65
    ActiveWindow.ScrollRow = 63
    ActiveWindow.ScrollRow = 60
    ActiveWindow.ScrollRow = 57
    ActiveWindow.ScrollRow = 54
    ActiveWindow.ScrollRow = 51
    ActiveWindow.ScrollRow = 48
    ActiveWindow.ScrollRow = 45
    ActiveWindow.ScrollRow = 42
    ActiveWindow.ScrollRow = 39
    ActiveWindow.ScrollRow = 37
    ActiveWindow.ScrollRow = 34
    ActiveWindow.ScrollRow = 31
    ActiveWindow.ScrollRow = 29
    ActiveWindow.ScrollRow = 27
    ActiveWindow.ScrollRow = 26
    ActiveWindow.ScrollRow = 25
    ActiveWindow.ScrollRow = 23
    ActiveWindow.ScrollRow = 22
    ActiveWindow.ScrollRow = 20
    ActiveWindow.ScrollRow = 19
    ActiveWindow.ScrollRow = 18
    ActiveWindow.ScrollRow = 16
    ActiveWindow.ScrollRow = 15
    ActiveWindow.ScrollRow = 14
    ActiveWindow.ScrollRow = 13
    ActiveWindow.ScrollRow = 12
    ActiveWindow.ScrollRow = 11
    ActiveWindow.ScrollRow = 10
    ActiveWindow.ScrollRow = 9
    ActiveWindow.ScrollRow = 8
    ActiveWindow.ScrollRow = 7
    Range("A21").Select
    Application.CutCopyMode = False
    ActiveCell.FormulaR1C1 = ""
    Range("A22").Select
Sheets("BD").Select
Lig = 22
DerLig = [A250].End(xlUp).Row
For L = 22 To DerLig
If Cells(L, 18) > 0 Then
Cells(L, 18).EntireRow.Copy Destination:=Sheets("boncommande").Cells(Lig, 1)
Lig = Lig + 1
End If
Next L
Sheets("boncommande").Select
End Sub

Le but de cette macro est de prélever selon un critère une partie d'une base de donnée et de la coller dans une autre base.

En théorie tou marche bien mais il y a un soucis: la base de départ possède des infos qui sont le résultat de fonction. Ma maceo copie ces fonction et du coup, les céllules collées n'affichent plus les bonnes valeurs.

J'aimerais que ma macro, au lieu d'effectuer un simple collage, effectue un "collage spécial/ valeur"
Comme cela, elle mettrait directement la valeur de l'ancienne cellule sans se préocuper des formules.
est-ce possible? merci d'avance a tous.
 

cococh

XLDnaute Occasionnel
Re : un collage spécial en macro

enfaite, la partie de la mùacro qui pose problème est juste celle ci:

Code:
Sheets("BD").Select
Lig = 22
DerLig = [A250].End(xlUp).Row
For L = 22 To DerLig
If Cells(L, 18) > 0 Then
Cells(L, 18).EntireRow.Copy Destination:=Sheets("boncommande").Cells(Lig, 1)
Lig = Lig + 1
End If
Next L
Sheets("boncommande").Select
End Sub

au niveau du EntireRow.Copy Destination, il faudrais lui signifier que le colage voulu ne concerbne que les valeurs mais je ne connait pas ce code.
Avez-vous une idées?
 

wilfried_42

XLDnaute Barbatruc
Re : un collage spécial en macro

Bonjour

essaye ceci
à la place de :
Code:
Cells(L, 18).EntireRow.Copy Destination:=Sheets("boncommande").Cells(Lig, 1)
mets :
Code:
Cells(L, 18).EntireRow.Copy 
Sheets("boncommande").Cells(Lig, 1).PasteSpecial xlPasteValues
 

Statistiques des forums

Discussions
312 214
Messages
2 086 309
Membres
103 174
dernier inscrit
OBUTT