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 !

dede039

XLDnaute Occasionnel
bonjours le forum

j'ai besoin de votre aide j'ai se code qui marche bien mais quand ont l'exécute tout clignote
je voudrai que tout se face en "invisible"

Code:
Sub macro1()
    Sheets("Feuil2").Select
    Dim X As Range
        Set X = Range(Cells(1, 1), Cells(65535, 1)).Find("", , xlValues, xlWhole, , , False) 'recherche premiere ligne vide
        deb = 0
            If Not X Is Nothing Then
                deb = (X.Row) 'deb= num ligne vide
            End If
    Range("A1").Select
    Range(Cells(1, 1), Cells(deb - 1, 50)).Select ' nombre de colonne
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Feuil1").Select
    Set X = Range(Cells(1, 1), Cells(65535, 1)).Find("", , xlValues, xlWhole, , , False)
    i = X.Row
    Range("A1").Select
    ActiveCell.Offset(i - 1, 0).Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
    Cells.Select
    Selection.Sort Key1:=Range("C1"), Order1:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
    Range("A1").Select
    i = 0
        Do Until ActiveCell.Offset(i, 0).Value = ""
            i = i + 1
            p = 0
            For j = 1 To 26 'nombres de colonne traite
                If ActiveCell.Offset(i, j).Value = ActiveCell.Offset(i - 1, j).Value Then
                    p = p + 1
                End If
                If p = 26 Then
                    Rows(i).Delete
                    i = i - 1
                End If
            Next j
        Loop
End Sub
 
Re : modif de macro

bonjours phlaurent

j'ai déjà essaye sa mais sa marche moyen
il vaudrai que se sois totalement invisible
cas cette macro pour être lance depuis plusieurs feuille
et si j'utilise sa marche pas trop bien (ont change de feuille et je ne veut pas)
 
Re : modif de macro

Bonsoir à tous
Sans support, difficile d'être sûr de ce qu'on fait ; à tout hasard, voyez si ceci arrange les choses :
Code:
Sub macro1()
Dim deb&, i&, j%, p As Boolean, X As Range
  Sheets("Feuil2").Activate
  With Sheets("Feuil1")
    Set X = .Range(.Cells(1, 1), .Cells(65535, 1)).Find("", , xlValues, xlWhole, , , False)
    i = X.Row
    Set X = Range(Cells(1, 1), Cells(65535, 1)).Find("", , xlValues, xlWhole, , , False)
    If X Is Nothing Then deb = 0 Else deb = X.Row
    Range(Cells(1, 1), Cells(deb - 1, 50)).Copy Destination:=.Range("A1").Offset(i - 1, 0)
    .Cells.Sort Key1:=.Range("C1"), Order1:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
    i = 0
    Do Until .Cells(1, 1).Offset(i, 0).Value = ""
      i = i + 1
      p = True
      For j = 1 To 26
        p = p And (.Cells(1, 1).Offset(i, j).Value = .Cells(1, 1).Offset(i - 1, j).Value)
      Next j
      If p Then
        .Rows(i).Delete
        i = i - 1
      End If
    Loop
    .Activate
  End With
End Sub
ROGER2327
#4795


Lundi 23 Sable 138 (Sainte Viole, vierge et martyre, SQ)
3 Nivôse An CCXIX
2010-W51-4T17:29:37Z
 
Re : modif de macro

Re...
Il vous faudra essayer vous-même le code proposé car je ne dispose que d'Excel2003 qui n'ouvre pas les fichiers .xlsm. Désolé.​
ROGER2327
#4796


Lundi 23 Sable 138 (Sainte Viole, vierge et martyre, SQ)
3 Nivôse An CCXIX
2010-W51-4T18:20:29Z
 
Re : modif de macro

Re...
Essayez ceci :
Code:
Sub macro1()
Dim deb&, i&, j%, p As Boolean, X As Range, sh As Worksheet
  Application.Calculation = -4135
  Set sh = ActiveSheet
  With Sheets("Feuil1")
    Set X = .Range(.Cells(1, 1), .Cells(.Rows.Count, 1)).Find("", , xlValues, xlWhole, , , False)
    i = X.Row
    Set X = sh.Range(sh.Cells(1, 1), sh.Cells(sh.Rows.Count, 1)).Find("", , xlValues, xlWhole, , , False)
    If X Is Nothing Then deb = 0 Else deb = X.Row
    sh.Range(sh.Cells(1, 1), sh.Cells(deb - 1, 50)).Copy Destination:=.Range("A1").Offset(i - 1, 0)
    .Cells.Sort Key1:=.Range("C1"), Order1:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
    i = 0
    Do Until .Cells(1, 1).Offset(i, 0).Value = ""
      i = i + 1
      p = True
      For j = 1 To 26
        p = p And (.Cells(1, 1).Offset(i, j).Value = .Cells(1, 1).Offset(i - 1, j).Value)
      Next j
      If p Then
        .Rows(i).Delete
        i = i - 1
      End If
    Loop
  End With
  Application.Calculation = -4105
End Sub
ROGER2327
#4798


Mardi 24 Sable 138 (Sainte Pochetée, gouvernante, SQ)
4 Nivôse An CCXIX
2010-W51-5T00:39:16Z
 
Re : modif de macro

Re...
cela ne marche que si je suis sur la feuille 2
C'est fort possible : ça ne fonctionnera que si la feuille active au moment du déclenchement contient des données susceptibles d'être traitées. Pour en dire plus, il faudrait connaître les conditions exactes d'utilisation.​
ROGER2327
#4803


Mardi 24 Sable 138 (Sainte Pochetée, gouvernante, SQ)
4 Nivôse An CCXIX
2010-W51-5T10:59:42Z
 
- 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

Réponses
7
Affichages
175
Réponses
5
Affichages
910
Réponses
15
Affichages
784
Réponses
4
Affichages
732
Retour