Macro à optimiser copier-coller spécial
Chaloine
Messages postés
3
Statut
Membre
-
michel_m Messages postés 18903 Date d'inscription Statut Contributeur Dernière intervention -
michel_m Messages postés 18903 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour à toutes et à tous,
j'ai un souci avec une macro qui fait un couper coller de ligne d'une feuille à une autre, sous condition de statut; je souhaite qu'elle continue de faire le couper-coller mais avec un "special paste" car je ne veux que les valeurs (et non les formules)...et là je sèche !
Voici le code ci-dessous : (j'ai mis la ligne qui me pose problème en gras)
Sub Arch_auto()
'Déclaration des variables ----------------------------
Dim Lig_S As Long 'Ligne source
Dim Lig_D As Long 'ligne destination
Dim F_S As Worksheet 'Feuille source
Dim F_D As Worksheet 'Feuille Destination
'MEI (mise à l'état initial ---------------------------
Set F_S = Sheets("Dmdes actives") 'F1 est le nom de l'onglet source
Set F_D = Sheets("Dmdes_clôturées") 'F2 est le nom de l'onglet destination
Lig_D = F_D.Range("B65536").End(xlUp).Row + 1 'Ligne destination
' Traitement ------------------------------------------
For Lig_S = 1000 To 7 Step -1
'Pour les lignes de 1000 à 7 en décrémentant de 1
'comme on supprime des lignes, c'st plus simple
If F_S.Range("O" & Lig_S) = "Clôturée" Then
'si W est égale à "Clôturée"
F_S.Range(F_S.Range("A" & Lig_S), F_S.Range("O" & Lig_S)).Cut _
F_D.Range("A" & Lig_D)
'on coupe de A à O la ligne et on la copie directement
F_S.Rows(Lig_S).Delete
'On supprime la ligne qu'on vient de couper
Lig_D = Lig_D + 1
'On passe à la ligne de destination suivante
End If
Next Lig_S
End Sub
Un grand merci par avance de vos lumineuses connaissances,
Antoine.
j'ai un souci avec une macro qui fait un couper coller de ligne d'une feuille à une autre, sous condition de statut; je souhaite qu'elle continue de faire le couper-coller mais avec un "special paste" car je ne veux que les valeurs (et non les formules)...et là je sèche !
Voici le code ci-dessous : (j'ai mis la ligne qui me pose problème en gras)
Sub Arch_auto()
'Déclaration des variables ----------------------------
Dim Lig_S As Long 'Ligne source
Dim Lig_D As Long 'ligne destination
Dim F_S As Worksheet 'Feuille source
Dim F_D As Worksheet 'Feuille Destination
'MEI (mise à l'état initial ---------------------------
Set F_S = Sheets("Dmdes actives") 'F1 est le nom de l'onglet source
Set F_D = Sheets("Dmdes_clôturées") 'F2 est le nom de l'onglet destination
Lig_D = F_D.Range("B65536").End(xlUp).Row + 1 'Ligne destination
' Traitement ------------------------------------------
For Lig_S = 1000 To 7 Step -1
'Pour les lignes de 1000 à 7 en décrémentant de 1
'comme on supprime des lignes, c'st plus simple
If F_S.Range("O" & Lig_S) = "Clôturée" Then
'si W est égale à "Clôturée"
F_S.Range(F_S.Range("A" & Lig_S), F_S.Range("O" & Lig_S)).Cut _
F_D.Range("A" & Lig_D)
'on coupe de A à O la ligne et on la copie directement
F_S.Rows(Lig_S).Delete
'On supprime la ligne qu'on vient de couper
Lig_D = Lig_D + 1
'On passe à la ligne de destination suivante
End If
Next Lig_S
End Sub
Un grand merci par avance de vos lumineuses connaissances,
Antoine.
A voir également:
- Macro à optimiser copier-coller spécial
- Optimiser son pc - Accueil - Utilitaires
- Historique copier coller - Guide
- Style d'écriture a copier coller - Guide
- Caractere special - Guide
- Copier coller pdf - Guide
1 réponse
Bonjour,
essaies
Nota
en début de ta rubrique "----traitement" écris cette ligne qui fige le défilement de l'écran: rapidité d'exécution, confort visuel
Michel
essaies
Dim tampon()
With F_S.Range(Cells(lig_s, "A"), Cells(lig_s, "O"))
tampon = .Value
.Rows(lig_s).Delete
End With
F_D.Cells(lig_D, "A").Resize(1, 15) = tampon
Nota
en début de ta rubrique "----traitement" écris cette ligne qui fige le défilement de l'écran: rapidité d'exécution, confort visuel
Application.screenupdating=False
Michel