VBA Excel 2007
Résolu/Fermé
ella12_12
Messages postés
94
Date d'inscription
samedi 20 octobre 2007
Statut
Membre
Dernière intervention
28 février 2016
-
28 mars 2011 à 19:01
ella12_12 Messages postés 94 Date d'inscription samedi 20 octobre 2007 Statut Membre Dernière intervention 28 février 2016 - 29 mars 2011 à 12:59
ella12_12 Messages postés 94 Date d'inscription samedi 20 octobre 2007 Statut Membre Dernière intervention 28 février 2016 - 29 mars 2011 à 12:59
A voir également:
- VBA Excel 2007
- Liste déroulante excel - Guide
- Save as pdf office 2007 - Télécharger - Bureautique
- Si et excel - Guide
- Aller à la ligne excel - Guide
- Word et excel gratuit - Guide
3 réponses
ella12_12
Messages postés
94
Date d'inscription
samedi 20 octobre 2007
Statut
Membre
Dernière intervention
28 février 2016
31
28 mars 2011 à 21:19
28 mars 2011 à 21:19
a
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
Modifié par michel_m le 29/03/2011 à 09:25
Modifié par michel_m le 29/03/2011 à 09:25
Bonjour,
En VBA, évite les select-selection et les copy ou cut -paste très lents et "mangeurs de mémoire" :-)
proposition
En espèrant que
Michel
En VBA, évite les select-selection et les copy ou cut -paste très lents et "mangeurs de mémoire" :-)
proposition
Sub Retire_Close() Dim Nbre As Integer, Cptr As Integer Dim Lig1 As Integer, Lig2 As Integer Dim ligne 'fige le défilement de l'écran Application.ScreenUpdating = False With Sheets("Issue_List") 'compte le nombre de "close" dans colonne 10 Nbre = Application.CountIf(.Columns(10), "Close") ' vérification de présence If Nbre = 0 Then: GoTo vide Lig1 = 5 'on ne boucle que sur les lignes avec "close" For Cptr = 1 To Nbre Lig1 = .Columns(10).Find("close", .Cells(Lig1, 10), xlValues).Row With .Range(.Cells(Lig1, 1), .Cells(Lig1, 16)) 'mémorise et nettoie la ligne avec "close" ligne = .Value .Clear End With With Sheets("Issue_List closed") 'restitue la ligne avec c"lose" Lig2 = .Range("A1048576").End(xlUp).Offset(1).Row .Range(.Cells(Lig2, 1), .Cells(Lig2, 16)) = ligne End With Next 'cache les lignes contenant auparavant "close" .Range("J6:J" & Lig1).SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True End With Exit Sub vide: MsgBox " aucune valeur ""close"", vbcritical" End Sub
En espèrant que
Michel
ella12_12
Messages postés
94
Date d'inscription
samedi 20 octobre 2007
Statut
Membre
Dernière intervention
28 février 2016
31
29 mars 2011 à 12:59
29 mars 2011 à 12:59
Bonjour Michel,
Un tout grand merci.
Cela fonctionne pas mal, mais il y a deux points de détails :
Feuille issue_list
1. Colonne "j" et "P" : lorsque je j'insère une nouvelle ligne, ces lignes n'ont plus la validation
2. Colonne "L" : lorsque j'insère une nouvelle ligne, il n'y a plus la formule
Feuille issue_list_closed
1. Colonne "j" et "P" : La validation reste
2. Les formats conditionnels restent aussi
J'aimerai ne plus les avoir dans la feuille issue liste
j'ai essayé en changeant une partie du code.
With .Range(.Cells(Lig1, 1), .Cells(Lig1, 16))
'mémorise et nettoie la ligne avec "close"
ligne = .Value
EntireRow.Hidden = True
'.Clear
End With
With Sheets("Issue_List closed")
'restitue la ligne avec c"lose"
Lig2 = .Range("A1048576").End(xlUp).Offset(1).Row
.Range(.Cells(Lig2, 1), .Cells(Lig2, 16)) = ligne
End With
Next
'cache les lignes contenant auparavant "close"
'.Range("J6:J" & Lig1).SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True
End With
Un tout grand merci d'avance
Bien à vous
E
Un tout grand merci.
Cela fonctionne pas mal, mais il y a deux points de détails :
Feuille issue_list
1. Colonne "j" et "P" : lorsque je j'insère une nouvelle ligne, ces lignes n'ont plus la validation
2. Colonne "L" : lorsque j'insère une nouvelle ligne, il n'y a plus la formule
Feuille issue_list_closed
1. Colonne "j" et "P" : La validation reste
2. Les formats conditionnels restent aussi
J'aimerai ne plus les avoir dans la feuille issue liste
j'ai essayé en changeant une partie du code.
With .Range(.Cells(Lig1, 1), .Cells(Lig1, 16))
'mémorise et nettoie la ligne avec "close"
ligne = .Value
EntireRow.Hidden = True
'.Clear
End With
With Sheets("Issue_List closed")
'restitue la ligne avec c"lose"
Lig2 = .Range("A1048576").End(xlUp).Offset(1).Row
.Range(.Cells(Lig2, 1), .Cells(Lig2, 16)) = ligne
End With
Next
'cache les lignes contenant auparavant "close"
'.Range("J6:J" & Lig1).SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True
End With
Un tout grand merci d'avance
Bien à vous
E