VBA Excel
Résolu/Fermé
A voir également:
- VBA Excel
- Liste déroulante excel - Guide
- Si et excel - Guide
- Aller à la ligne excel - Guide
- Word et excel gratuit - Guide
- Excel compter cellule couleur sans vba - Guide
2 réponses
tompols
Messages postés
1273
Date d'inscription
jeudi 29 juillet 2004
Statut
Contributeur
Dernière intervention
25 novembre 2013
435
3 déc. 2009 à 11:09
3 déc. 2009 à 11:09
Bonjour,
ça devrait faire qqchose comme ça :
ça devrait faire qqchose comme ça :
Range("Name manager").Offset(0, -10).Select Selection.Copy Range("Name manager").Select ActiveSheet.Paste
Je precise que j'ai bien reussi a faire une marco "Record" en selectionnant la source, copy, puis en selectionnant la destination et en faisant paste.value. Mais la macro ecrite est 100% excel :
Range("Z11:AB21").Select
Selection.Copy
Range("J11:L21").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Et en fait, j'aimerai au passage faire un petit traitement du genre, ne pas faire la copie si la des contient une valeur precise, et eventuellement faire un triatement simple de la valeur source (du genre remplacer"PASSED" par "P" ..)
donc une macro en VB du genre :
Range("Z11:AB21").Select
Selection.Copy
Range("J11:L21").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Et en fait, j'aimerai au passage faire un petit traitement du genre, ne pas faire la copie si la des contient une valeur precise, et eventuellement faire un triatement simple de la valeur source (du genre remplacer"PASSED" par "P" ..)
donc une macro en VB du genre :
j'ai reussi a faire ca :
Dim Cellule As Range
Dim p As String
For Each Cellule In Range("playback_")
If Cellule.Value <> "NI" And Cellule.Value <> "NA" Then
p = Cellule.Offset(0, 8).Value
p = Replace(p, "PASSED", "P")
p = Replace(p, "FAILED", "F")
p = Replace(p, "LOW_Q", "LQ")
Cellule.Value = p
End If
Next
mais c'est beaucoup plus lent !!
Dim Cellule As Range
Dim p As String
For Each Cellule In Range("playback_")
If Cellule.Value <> "NI" And Cellule.Value <> "NA" Then
p = Cellule.Offset(0, 8).Value
p = Replace(p, "PASSED", "P")
p = Replace(p, "FAILED", "F")
p = Replace(p, "LOW_Q", "LQ")
Cellule.Value = p
End If
Next
mais c'est beaucoup plus lent !!
Rilke
Messages postés
4
Date d'inscription
jeudi 3 décembre 2009
Statut
Membre
Dernière intervention
3 décembre 2009
>
Grumly
3 déc. 2009 à 12:09
3 déc. 2009 à 12:09
Bonjour,
pour accélérer le traitement :
encadrer celui-ci avec :
Application.ScreenUpdating = False
[ ... traitement ...]
Application.ScreenUpdating = True
La mise à jour de l'affichage ne se fera qu'en fin de traitement
Il y a aussi la possibilité d'inhiber et réactiver les calculs
Application.Calculation = xlManual
Application.Calculation = xlAutomatic
pour accélérer le traitement :
encadrer celui-ci avec :
Application.ScreenUpdating = False
[ ... traitement ...]
Application.ScreenUpdating = True
La mise à jour de l'affichage ne se fera qu'en fin de traitement
Il y a aussi la possibilité d'inhiber et réactiver les calculs
Application.Calculation = xlManual
Application.Calculation = xlAutomatic
Grumly
>
Rilke
Messages postés
4
Date d'inscription
jeudi 3 décembre 2009
Statut
Membre
Dernière intervention
3 décembre 2009
3 déc. 2009 à 14:12
3 déc. 2009 à 14:12
Merci bcp, en effet ca na rien a voir, tres efficace !