Creation macro simple

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Re : Creation macro simple

Bonjour Urbanito1 le forum
tu dis après la colonne 9, mais tu ne veux pas transférer toutes les lignes, qui possèdent un 06 ou un 03 dans la colonne 9, dans une autre feuille??
et après tu veux quoi quand c'est transféré on supprime dans la feuille donnée??
tu peux nous mettre dans la feuille F1 le résultat souhaité STP
a+
Papou🙂
 
Re : Creation macro simple

Bonjour urbanito1,
Salut Papou 🙂

Pourquoi ne pas te simplifier la vie:

En U2, par exemple, inscrire =OU(DROITE(I2;2)="03";DROITE(I2;2)="06") et recopier jusqu'en bas. Faire un tri décroissant sur la colonne U.
Sélectionner ensuite les lignes avec VRAI en colonne U, les couper et les coller ... ou tu veux!
 
Re : Creation macro simple

Bonjour urbanito1, Papou, Modeste,

Oui c'est un simple filtrage, une autre manière de faire :

Code:
Private Sub Worksheet_Activate()
Application.ScreenUpdating = False
Me.UsedRange.Delete xlUp 'RAZ
With Feuil2.[A1].CurrentRegion 'CodeName de la feuille
  .Offset(1).AutoFilter
  .Offset(1).AutoFilter 9, "*-03", xlOr, "*-06"
  Intersect(.Cells, .Columns("I:IV")).Copy [A1]
  .Parent.AutoFilterMode = False
End With
Me.Columns.AutoFit 'ajustement facultatif
End Sub
C'est à placer dans le code de la 1ère feuille (f1).

Bonne journée.
 
Re : Creation macro simple

Re,

Je suis parti du 1er fichier qui précise A PARTIR DE LA COLONNE 9.

Maintenant si l'on veut copier toutes les colonnes c'est plus simple :

Code:
Private Sub Worksheet_Activate()
Application.ScreenUpdating = False
Me.UsedRange.Delete xlUp 'RAZ
With Feuil2.[A1].CurrentRegion 'CodeName de la feuille
  .Offset(1).AutoFilter
  .Offset(1).AutoFilter 9, "*-03", xlOr, "*-06"
  .Copy [A1]
  .Parent.AutoFilterMode = False
End With
Me.Columns.AutoFit 'ajustement facultatif
End Sub
A+
 
Re : Creation macro simple

Re,

Si l'on tient à SUPPRIMER les lignes transférées (ce n'est pas recommandé) :

Code:
Sub Transfert()
Application.ScreenUpdating = False
Feuil1.UsedRange.Delete xlUp 'RAZ
With Feuil2.[A1].CurrentRegion 'CodeName de la feuille
  .Offset(1).AutoFilter
  .Offset(1).AutoFilter 9, "*-03", xlOr, "*-06"
  .Copy Feuil1.[A1]
  On Error Resume Next
  .Offset(2).Resize(.Rows.Count - 2) _
    .SpecialCells(xlCellTypeVisible).EntireRow.Delete
  .Parent.AutoFilterMode = False
End With
Feuil1.Columns.AutoFit 'ajustement facultatif
End Sub
A+
 
Re : Creation macro simple

Re,

Sur 100000 lignes, s'il y a beaucoup de lignes disjointes à supprimer, la suppression peut prendre beaucoup de temps.

Il faut alors, par un tri, grouper en bas les lignes à supprimer :

Code:
Sub Transfert()
Application.ScreenUpdating = False
Feuil1.UsedRange.Delete xlUp 'RAZ
With Feuil2.[A1].CurrentRegion 'CodeName de la feuille
  .Offset(1).AutoFilter
  .Offset(1).AutoFilter 9, "*-03", xlOr, "*-06"
  .Copy Feuil1.[A1]
  On Error Resume Next
  Intersect(.Offset(2).Resize(.Rows.Count - 2), .Columns(9)) _
    .SpecialCells(xlCellTypeVisible) = "#N/A"
  .Parent.AutoFilterMode = False
  .Offset(1).Sort .Columns(9), xlAscending, Header:=xlYes 'tri
  .Columns(9).SpecialCells(xlCellTypeConstants, 16).EntireRow.Delete
End With
Feuil1.Columns.AutoFit 'ajustement facultatif
End Sub
A+
 
Re : Creation macro simple

le forum
paritec, job75 extra

paritec je n'ai pas vu de différence entre version 1 et version 2, les deux fonctionnent,

job75 j'ai fait le test sur un fichier avec 25.000 lignes ( paragraphe 13)

merci à vous deux

urbanito1
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour