Ajouter un critère

Fermé
nonossov Messages postés 611 Date d'inscription lundi 29 décembre 2014 Statut Membre Dernière intervention 17 janvier 2020 - Modifié par nonossov le 12/04/2016 à 12:24
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 - 25 avril 2016 à 12:26
Bonjour,
voila mon code macro, il consiste a nettoyer une feuille excel il déplace quelques colonnes et elle delete les autres, j'aimerai avant de supprimer les autres colonnes de déplacer les colonnes : M vers K et P vers J:

<code xml>Sub NETTOYAGE()
If MsgBox("Etes-vous sur de vouloir nettoyer le journal?", vbOKCancel) = vbCancel Then
End
End If


Range( _
"A:B,I:M,P:AH" _
).Select
Selection.Delete Shift:=xlToLeft
Columns("C:C").Select
Selection.Insert Shift:=xlToRight
Columns("E:E").Select
Selection.Cut Destination:=Columns("C:C")
Columns("E:E").Select
Selection.Delete Shift:=xlToLeft
Columns("E:E").Select
Columns("F:F").ColumnWidth = 4.29
Columns("A:A").Select
Selection.Insert Shift:=xlToRight
Columns("F:F").Select
Selection.Cut Destination:=Columns("A:A")
Columns("B:B").Select
Selection.Insert Shift:=xlToRight
Columns("H:H").Select
Selection.Cut Destination:=Columns("B:B")
Columns("C:C").Select
Selection.Insert Shift:=xlToRight
Columns("E:E").Select
Selection.Insert Shift:=xlToRight
Columns("L:L").Select
Selection.Cut Destination:=Columns("E:E")
Columns("J:J").Delete Shift:=xlToLeft

'pour déterminer le nombre de lignes
Dim nbCells As Long
nbCells = Application.WorksheetFunction.CountA(Columns("F:F"))

Range("I2").Select
ActiveCell.FormulaR1C1 = "=RC[-2]+RC[-1]"
Range("I2").Select
Selection.Copy
Range("I2").Select
Application.CutCopyMode = False
If nbCells > 0 Then
Selection.AutoFill Destination:=Range("I2:I" & nbCells), Type:=xlFillDefault
End If
Rows("1:1").Select
Selection.Delete Shift:=xlUp

Columns("A:A").Select

CorrectionDateScanfact

End Sub
</code>


2 réponses

nonossov Messages postés 611 Date d'inscription lundi 29 décembre 2014 Statut Membre Dernière intervention 17 janvier 2020
12 avril 2016 à 18:32
Up Merci
0
nonossov Messages postés 611 Date d'inscription lundi 29 décembre 2014 Statut Membre Dernière intervention 17 janvier 2020
13 avril 2016 à 17:30
Plz up
0
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 337
14 avril 2016 à 06:03
Bonjour
j'aimerai avant de supprimer les autres colonnes de déplacer les colonnes : M vers K et P vers J A partir de quelle ligne?
Servez vous de l'enregistreur de macro comme vous l'avez fait pour supprimer les colonnes.
Profitez en pour arranger le résultat obtenu; exemple: voici le même début de votre macro après toilettage
    Columns("C:C").Insert Shift:=xlToRight
    Columns("E:E").Cut Destination:=Columns("C:C")
    Columns("E:E").Delete Shift:=xlToLeft
    Columns("F:F").ColumnWidth = 4.29
    Columns("A:A").Insert Shift:=xlToRight
    Columns("F:F").Cut Destination:=Columns("A:A")
    Columns("B:B").Insert Shift:=xlToRight
    Columns("H:H").Cut Destination:=Columns("B:B")
    Columns("C:C").Insert Shift:=xlToRight
    Columns("E:E").Insert Shift:=xlToRight
    Columns("L:L").Cut Destination:=Columns("E:E")
    Columns("J:J").Delete Shift:=xlToLeft

Cdlt
0
nonossov Messages postés 611 Date d'inscription lundi 29 décembre 2014 Statut Membre Dernière intervention 17 janvier 2020
18 avril 2016 à 12:36
je n'ai pas compris comment je peux introduire cette macro a mon macro origine??
0
nonossov Messages postés 611 Date d'inscription lundi 29 décembre 2014 Statut Membre Dernière intervention 17 janvier 2020
25 avril 2016 à 11:45
Mr Frenchie83, merci de m'aider sur ça !
0
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 337 > nonossov Messages postés 611 Date d'inscription lundi 29 décembre 2014 Statut Membre Dernière intervention 17 janvier 2020
25 avril 2016 à 12:26
Bonjour
Il ne s'agit pas d'introduire, mais de remplacer
Votre code légèrement modifié:
Sub NETTOYAGE()
    Application.ScreenUpdating = False
    Dim nbCells As Long
    If MsgBox("Etes-vous sur de vouloir nettoyer le journal?", vbOKCancel) = vbCancel Then End
    Range("A:B,I:M,P:AH").Delete
    Columns("C:C").Insert
    Columns("E:E").Cut Destination:=Columns("C:C")
    Columns("E:E").Delete
    Columns("F:F").ColumnWidth = 4.29
    Columns("A:A").Insert
    Columns("F:F").Cut Destination:=Columns("A:A")
    Columns("B:B").Insert
    Columns("H:H").Cut Destination:=Columns("B:B")
    Columns("C:C").Insert
    Columns("E:E").Insert
    Columns("L:L").Cut Destination:=Columns("E:E")
    Columns("J:J").Delete
    
   'pour déterminer le nombre de lignes
    nbCells = Application.WorksheetFunction.CountA(Columns("F:F"))
    Range("I2:I" & nbCells).FormulaR1C1 = "=RC[-2]+RC[-1]"
    Rows("1:1").Delete
    Columns("A:A").Select
    CorrectionDateScanfact
End Sub



Quant à votre demande: j'aimerai avant de supprimer les autres colonnes de déplacer les colonnes : M vers K et P vers J A partir de quelle ligne?
Comme je l'ai dit plus haut, servez vous de l'enregistreur de macro comme vous l'avez fait pour supprimer les colonnes et retouchez (si vous le voulez, mais ce n'est pas obligatoire) le code obtenu pour clarifier l'écriture et ainsi faciliter la lecture.
Cdlt
0