Bonjour a tous,
J'ai un soucis sur une code VBA.
voici le code actuel:
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.
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.