• Initiateur de la discussion Initiateur de la discussion NYghost
  • Date de début Date de début

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 !

N

NYghost

Guest
Salut la communauté,

Meilleurs voeux pour 2010..

Alors voila, je chipote toujours de manière très basique avec les macros et j'aimerai améliorer 2-3 trucs dans une macro que j'ai créé mais la je bloque!

Tout d'abord, voici le code en question:

Code:
Sub test()

Dim varcheck As String
Dim varbat As String
Dim varboil As String
Dim varfreq As String

For Each Cellule In Range("A1:M1000")

On Error Resume Next

varcheck = "check"
varbat = "battery"
varboil = "boil"
varfreq = "frequency"
varaccess = "access"
varvers = "version"

Set wordcheck = Cells.Find(What:=varcheck)
    If Not wordcheck Is Nothing Then
    wordcheck.Select
    ActiveCell.EntireRow.Select
    Selection.Delete Shift:=xlUp
End If

Set wordbat = Cells.Find(What:=varbat)
    If Not wordbat Is Nothing Then
    wordbat.Select
    ActiveCell.EntireRow.Select
    Selection.Delete Shift:=xlUp
End If

Set wordboil = Cells.Find(What:=varboil)
    If Not wordboil Is Nothing Then
    wordboil.Select
    ActiveCell.EntireRow.Select
    Selection.Delete Shift:=xlUp
End If

Set wordfreq = Cells.Find(What:=varfreq)
    If Not wordfreq Is Nothing Then
    wordfreq.Select
    ActiveCell.EntireRow.Select
    Selection.Delete Shift:=xlUp
End If

Set wordaccess = Cells.Find(What:=varaccess)
    If Not wordaccess Is Nothing Then
    wordaccess.Select
    ActiveCell.EntireRow.Select
    Selection.Delete Shift:=xlUp
End If

Set wordvers = Cells.Find(What:=varvers)
    If Not wordvers Is Nothing Then
    wordvers.Select
    ActiveCell.EntireRow.Select
    Selection.Delete Shift:=xlUp
End If

Next

End Sub

3 choses sont à améliorer:
- Mon range actuel (A1:M1000) est statique, or, parfois j'ai un tableau de 500 lignes à traiter, parfois il s'agit d'un tableau de 5000 lignes, je dois donc modifier manuellement. Est-il possible de dimensionner ce range dynamiquement en fonction de l'occupation des cellules?
- Assez proche du but précédent, j'aimerai simplement numéroter les lignes remplies dans la colonne N
- Enfin pour le dernier, une explication s'impose: comme vu pouvez le voir, je cherche une série de mot afin d'effacer les lignes. Je pense qu'il serait mieux de chercher le seul et unique mot que je veux garder, a savoir "level" et supprimer le reste, est-ce possible?

Un grand merci d'avance à tous pour votre aide..

NYghost
 
Re : Amélioration macro

Bonjour,

pour ta 1ère question, essaye ainsi, en supposant que l'on puisse se baser sur la colonne A pour déterminer le nombre de lignes à traiter... :

Code:
For Each Cellule In Range("A1:M" & Range("A65536").End(xlUp).Row)

bon après midi
@+
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
2
Affichages
411
Réponses
7
Affichages
449
Retour