VBA - Simplification "copier/coller" Excel
Résolu
Utilisateur anonyme
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
J'ai une macro VBA qui est assez longue, je cherche à réduire son temps de traitement en réécrivant mon programme en un language simplifié.
Voici un morceau de la base:
J'ai cherché à partir sur une autre base telle que :
Je pense ne pas être loin mais ma seconde ligne doit être débogé...
Pouvez-vous m'aider ?
Cordialement,
Ano
J'ai une macro VBA qui est assez longue, je cherche à réduire son temps de traitement en réécrivant mon programme en un language simplifié.
Voici un morceau de la base:
L = 5
For I = 5 To 700
If [Conditions...] Then
Sheets("arrivée").Cells(L, 5) = Sheets("départ").Cells(I, 5)
Sheets("arrivée").Cells(L, 7) = Sheets("départ").Cells(I, 7)
Sheets("arrivée").Cells(L, 8) = Sheets("départ").Cells(I, 8)
Sheets("arrivée").Cells(L, 9) = Sheets("départ").Cells(I, 9)
Sheets("arrivée").Cells(L, 10) = Sheets("départ").Cells(I, 10)
Sheets("arrivée").Cells(L, 11) = Sheets("départ").Cells(I, 11)
Sheets("arrivée").Cells(L, 13) = Sheets("départ").Cells(I, 13)
Sheets("arrivée").Cells(L, 14) = Sheets("départ").Cells(I, 14)
Sheets("arrivée").Cells(L, 15) = Sheets("départ").Cells(I, 15)
Sheets("arrivée").Cells(L, 16) = Sheets("départ").Cells(I, 16)
Sheets("arrivée").Cells(L, 17) = Sheets("départ").Cells(I, 17)
Sheets("arrivée").Cells(L, 18) = Sheets("départ").Cells(I, 18)
Sheets("arrivée").Cells(L, 19) = Sheets("départ").Cells(I, 19)
L = L + 1
End If
Next I
J'ai cherché à partir sur une autre base telle que :
L = 5
For I = 5 To 700
If [Conditions...] Then
Sheets("départ").Range(Cells(I, 5), Cells(I, 19)).Copy
Sheets("arrivée").Range(Cells(L, 5), Cells(L, 19)).Paste
L = L + 1
End If
Next I
Je pense ne pas être loin mais ma seconde ligne doit être débogé...
Pouvez-vous m'aider ?
Cordialement,
Ano
A voir également:
- VBA - Simplification "copier/coller" Excel
- Historique copier coller - Guide
- Liste déroulante excel - Guide
- Copier coller pdf - Guide
- Style d'écriture a copier coller - Guide
- Historique copier coller windows - Accueil - Informatique
3 réponses
Bonjour
pour aller vite
Michel
pour aller vite
Application.ScreenUpdating = False
If [Conditions...] Then
With Sheets("arrivée")
.Range("E5:S700") = Sheets("départ").Range("E5:S700").Value
.Columns("F").ClearContents
.Columns("L").ClearContents
End With
End If
Michel
J'ai une autre question, comment faire pour que seulement les valeurs soient copiées et non le format ?
Je me doute qu'un ".Values" doit trainer quelque part mais où et comment ?!!
Je me doute qu'un ".Values" doit trainer quelque part mais où et comment ?!!
bonjour
quelque chose comme ça
bonne suite
quelque chose comme ça
Const limax = 700
Const Condition = True
Public Sub Kopi()
Application.ScreenUpdating = False
L = 5
For I = 5 To limax
If Condition Then
Sheets("départ").Range(Cells(I, 5), Cells(I, 19)).Copy Sheets("arrivée").Cells(L, 5)
L = L + 1
End If
Next I
Application.ScreenUpdating = True
End Sub
bonne suite
vu son code, je pense que la condition est évaluée à chacune des lignes i
bonne fin d'après midi
alors en me basant sur ton code
Application.ScreenUpdating = False L = 5 For I = 5 To 700 If [Condition] Then Sheets("arrivée").Range(Cells(L, 5), Cells(L, 19))=Sheets("départ").Range(Cells(I, 5), Cells(I, 19)) L = L + 1 End If Next Imerci et bonne soirée