A voir également:
- Copy Paste sous condition
- Excel colorer une cellule sous condition d'une autre cellule ✓ - Forum Excel
- Bloquer saisie cellule excel sous condition ✓ - Forum Excel
- Colorer cellule excel sous condition - Guide
- Super copy - Télécharger - Gestion de fichiers
- Carbon copy cloner - Télécharger - Sauvegarde
2 réponses
Bonsoir
Voilà ce que je vous propose
A adapter bien sur surtout pour le nom des feuilles
en VBA eviter les select et bien déclarer les variables.
Bonne continuation
Voilà ce que je vous propose
A adapter bien sur surtout pour le nom des feuilles
Sub Ordering()
Application.ScreenUpdating = False
Worksheets("Feuil1").Activate
Dim I As Long
For I = 1 To Range("A" & Rows.Count).End(xlUp).Row
Sheets("Feuil1").Activate
If Sheets("Feuil1").Cells(I, 2) = "" Then
Rows(I).Delete
I = I - 1
End If
If Sheets("Feuil1").Cells(I, 21) = "1100" Then
'Rows(I).Select
Rows(I).Copy
maligne = Sheets("Feuil2").Range("A" & Rows.Count).End(xlUp).Row
maligne = maligne + 1
Sheets("Feuil2").Activate
Range(Cells(maligne, 1), Cells(maligne, 1)).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
End If
If Cells(I, 21) = "1140" Then
Rows(I).Copy
Sheets("Feuil2").Activate
maligne = Sheets("Feuil2").Range("A" & Rows.Count).End(xlUp).Row
maligne = maligne + 1
Range(Cells(maligne, 1), Cells(maligne, 1)).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
End If
Next I
Application.ScreenUpdating = True
Application.CutCopyMode = False
MsgBox "TERMINE"
End Sub
en VBA eviter les select et bien déclarer les variables.
Bonne continuation
michel_m
Messages postés
16593
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
23 mars 2023
3 292
Modifié par michel_m le 4/10/2012 à 09:59
Modifié par michel_m le 4/10/2012 à 09:59
Bonjour,
Ton tableau de départ semble très grand : pourrais tu me dire le nombre de colonnes (21 ?) et de lignes (38000 ?) ?
Pour effectuer ce que tu veux faire sans attendre plusieurs minutes il y a des techniques qui évitent les copy-paste, worksheets("xxx").activate, etc. très "chronophages" pour employer un mot à la mode. de m^me on peut parfois éviter des boucles, par exemple pour supprimer une ligne si un vide dans une colonne :
Si ça t'intéresse, tu dis...
au besoin tu mets en pièce jointe un extrait de ton classeur
pour joindre une pièce
mettre le classeur sans données confidentielles en pièce jointe sur
https://www.cjoint.com/
puis copier l'adresse du lien et la coller dans le message de réponse
Michel
Ton tableau de départ semble très grand : pourrais tu me dire le nombre de colonnes (21 ?) et de lignes (38000 ?) ?
Pour effectuer ce que tu veux faire sans attendre plusieurs minutes il y a des techniques qui évitent les copy-paste, worksheets("xxx").activate, etc. très "chronophages" pour employer un mot à la mode. de m^me on peut parfois éviter des boucles, par exemple pour supprimer une ligne si un vide dans une colonne :
Dim Derlig As Long
Derlig = Columns("B").Find("*", , , , , xlPrevious).Row
If Application.CountIf(Range("B1:B" & Derlig), "") > 0 Then
Range("B1:B" & Derlig).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End If
Si ça t'intéresse, tu dis...
au besoin tu mets en pièce jointe un extrait de ton classeur
pour joindre une pièce
mettre le classeur sans données confidentielles en pièce jointe sur
https://www.cjoint.com/
puis copier l'adresse du lien et la coller dans le message de réponse
Michel
8 oct. 2012 à 10:42