Bonjour à tous !
J'aurais besoin de votre aide concernant un de mes projets VBA en cours! Car après avoir fouillé une grande partie du net, je ne trouve pas tout à fait ce que je souhaite faire !
Le but de ce fichier est de faire du tri de donnée.
Il y a deux macro dans le fichier, la première "Macro1" qui est rattaché au bouton "traitement texte", tri converti les caractères spéciaux en lettre normale, celle-ci fonctionne très bien !
La deuxième, "Macro2" qui est rattaché au bouton "Veirf Postes" est plus complexe : le but est de supprimer des lignes en fonctions de critères. Le critère ici étant des mots qui seraient présent dans la cellule. Ma problématique étant que j'ai une liste de plusieurs mots que je voudrais définir comme critère pour la suppression de la ligne.
J'ai essayé une première méthode en faisant plusieurs ligne de code manuellement de la manière suivante :
Le code fonctionne, mais je cherche à faire deux choses par rapport à cela si possible :
- La première, qui est la plus importante : à connecter ma macro à la feuille suivante pour que tout soit automatisé ! Je m'explique : au lieu de devoir rentrer les critères un par un à la mano dans le code, ce qui fait certes passer le temps mais qui n'est pas très efficace , je voudrais que la macro supprime les lignes en fonction des critères que je rentre directement dans la feuille "SETTINGS", en colonne B.
En clair, j'aimerais que la macro fasse ceci : si dans la colonne D de la feuille "TRI LIGNE & SYMBOLE" (appelons cette case A), on trouve un des mots de la colonne B de la feuille SETTINGS (appelons cette case B), on supprime la ligne, sinon on passe à la suivante.
Et la petite subtilité, ce que à aucun moment A=B ^^, je cherche donc à vérifier si A contient B.
- La deuxième : A simplifier le code, car une fois que je lance la macro, excel plante et réfléchi longtemps avant de donner résultat ^^, je pense donc qu'il doit avoir une méthode plus efficace que checker 30000 lignes fois le nombre de critères ^^.
Je pense avoir été assez complet mais je reste bien sûre disponible si vous avez besoins d'infos supplémentaires !!
Et mon fichier ci-joint qui vous donnera plus d'infos !
Je vous remercie d'avance pour votre aide et vos conseils !!
J'aurais besoin de votre aide concernant un de mes projets VBA en cours! Car après avoir fouillé une grande partie du net, je ne trouve pas tout à fait ce que je souhaite faire !
Le but de ce fichier est de faire du tri de donnée.
Il y a deux macro dans le fichier, la première "Macro1" qui est rattaché au bouton "traitement texte", tri converti les caractères spéciaux en lettre normale, celle-ci fonctionne très bien !
La deuxième, "Macro2" qui est rattaché au bouton "Veirf Postes" est plus complexe : le but est de supprimer des lignes en fonctions de critères. Le critère ici étant des mots qui seraient présent dans la cellule. Ma problématique étant que j'ai une liste de plusieurs mots que je voudrais définir comme critère pour la suppression de la ligne.
J'ai essayé une première méthode en faisant plusieurs ligne de code manuellement de la manière suivante :
VB:
Dim I As Integer
For I = 30000 To 1 Step -1
If Not Cells(I, 1).Resize(1, 6).Find("gestionnaire") Is Nothing Then Rows(I).Delete
If Not Cells(I, 1).Resize(1, 6).Find("secteur") Is Nothing Then Rows(I).Delete
If Not Cells(I, 1).Resize(1, 6).Find("SIRH") Is Nothing Then Rows(I).Delete
If Not Cells(I, 1).Resize(1, 6).Find("S2I") Is Nothing Then Rows(I).Delete
Etc...
Le code fonctionne, mais je cherche à faire deux choses par rapport à cela si possible :
- La première, qui est la plus importante : à connecter ma macro à la feuille suivante pour que tout soit automatisé ! Je m'explique : au lieu de devoir rentrer les critères un par un à la mano dans le code, ce qui fait certes passer le temps mais qui n'est pas très efficace
En clair, j'aimerais que la macro fasse ceci : si dans la colonne D de la feuille "TRI LIGNE & SYMBOLE" (appelons cette case A), on trouve un des mots de la colonne B de la feuille SETTINGS (appelons cette case B), on supprime la ligne, sinon on passe à la suivante.
Et la petite subtilité, ce que à aucun moment A=B ^^, je cherche donc à vérifier si A contient B.
- La deuxième : A simplifier le code, car une fois que je lance la macro, excel plante et réfléchi longtemps avant de donner résultat ^^, je pense donc qu'il doit avoir une méthode plus efficace que checker 30000 lignes fois le nombre de critères ^^.
Je pense avoir été assez complet mais je reste bien sûre disponible si vous avez besoins d'infos supplémentaires !!
Et mon fichier ci-joint qui vous donnera plus d'infos !
Je vous remercie d'avance pour votre aide et vos conseils !!