Forums d'entraide informatique - Les forums de PCW

Version complète : Aide pour VBA sous Excel 2010
Vous consultez actuellement la version basse qualité d'un document. Voir la version complète avec le bon formatage.
Bonjour,
Je viens à vous pour obtenir de l'aide concernant le VBA.
Pour que vous puissiez me comprendre au mieux, voici une brève mise en situation.
Mon tableur me sert à suivre mes contacts avec mes prospects, donc j'ai tout ce qui concerne leur identité, leur situation etc.... et j'ai également deux colonnes traitant les relances.
Et dans mes colonnes L et P j'ai "Résultat de la relance" avec une liste déroulante proposant les trois choix suivants : Acceptation/Refus/A relancer de nouveau.
Avec le VBA je souhaite couper toutes les lignes où il est inscrit "Refus" dans les cases L et P pour les copier dans une feuille prévue à cet effet (feuille se trouvant dans le même classeur)
Pour l'instant mon code ressemble à cela :

Sub couper_coller() 
Dim Lig As Long
Dim Col As String
Dim NbrLig As Long
Dim NumLig As Long
Sheets("Refus").Activate ' feuille de destination
Col = "L" ' colonne de la donnée non vide à tester
NumLig = 1
With Sheets("Feuil1") ' feuille source
NbrLig = .Cells(65536, Col).End(xlUp).Row
For Lig = 2 To NbrLig
If .Cells(Lig, Col).Value <> "" Then
.Cells(Lig, Col).EntireRow.Cut
NumLig = NumLig + 1
Cells(NumLig, 1).Select
ActiveSheet.Paste
End If
Next
End With
End Sub

Vous l'aurez compris je ne suis pas une experte et mon code est loin d'être complet, je rencontre donc plusieurs difficultés.
Premièrement, mon code ne traite que la colonne "L" est-ce que l'on peut traiter les colonnes "L" et "P" dans le même code ou faut-il en créer deux ???
Deuxièmement, ce code ne me supprime pas les lignes de mon tableur mais seulement le contenu !!!
Et enfin, je ne sais pas comment inscrire que je veux couper seulement les lignes où il est inscrit "Refus" et du coup ce code me déplace tout !!!
Merci d'avanec aux plus courageux qui auront pris le temps de lire mon roman et d'y répondre dans l'idéal Wink

Bonjour et bienvenue AURELY.
Je ne peux vraiment pas t'aider sur cette program, mais j'ai trouvé ceci qui pourrait éventuellement répondre à ta demande.
Tiens-nous au courant de l'évolution.
Bonne journée.
Salut vous deux,

Alors j'y connais rien du tout aux Macros en VBA sur Excel, mais je peux déjà te proposer une solution qui marchera sûrement pour que les actions soient effectués sur la colonne P également et pas uniquement la colonne L. Pour le reste, je dois avouer que j'en sais pas grand chose, faut chercher sur le net :/

Pour que ça marche sur les deux colonnes :

Sub couper_coller() 

Dim Lig As Long

Dim Col As String

Dim NbrLig As Long

Dim NumLig As Long

Sheets("Refus").Activate ' feuille de destination


With Sheets("Feuil1") ' feuille source
Col = "L" ' colonne de la donnée non vide à tester

NumLig = 1

NbrLig = .Cells(65536, Col).End(xlUp).Row

For Lig = 2 To NbrLig

If .Cells(Lig, Col).Value <> "" Then

.Cells(Lig, Col).EntireRow.Cut

NumLig = NumLig + 1

Cells(NumLig, 1).Select

ActiveSheet.Paste

End If
Next

Col = "P" ' colonne de la donnée non vide à tester

NumLig = 1

NbrLig = .Cells(65536, Col).End(xlUp).Row

For Lig = 2 To NbrLig

If .Cells(Lig, Col).Value <> "" Then

.Cells(Lig, Col).EntireRow.Cut

NumLig = NumLig + 1

Cells(NumLig, 1).Select

ActiveSheet.Paste

End If
Next

End With

End Sub

Voilà, en passant j'ai un peu "indenté" ton code et je l'ai mis entre les balises [ code][/code] parce que sinon c'est vraiment illisible, essaies d'y penser quand tu postes du code Smile

Sinon, comme on est pas vraiment compétent là-dessus, tu devrais peut-être essayer sur les forums spécialisés excel, comme notamment XLD en général ils sont assez sympa et plutôt très compétent en terme d'Excel Smile

Voilà, tiens nous au courant, si tu trouves la solution, on serait intéressé pour que tu nous la poste !

URLs de référence