Sondage :

Publicité




Partenaires




Jmax-Hardware

mxdev.net

feedburner
donate.gif


101 visiteur(s) en ligne
Forums d'entraide informatique - Les forums de PCW
Aide pour VBA sous Excel 2010 - Version imprimable

+- Forums d'entraide informatique - Les forums de PCW (http://forum.pcinfo-web.com)
+-- Forum : Forum Informatique (/forumdisplay.php?fid=39)
+--- Forum : Autres (/forumdisplay.php?fid=17)
+--- Discussion : Aide pour VBA sous Excel 2010 (/showthread.php?tid=5365)



Aide pour VBA sous Excel 2010 - Aurely - 04-04-2012 12:47 PM

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


RE: Aide pour VBA sous Excel 2010 - leader.75 - 05-04-2012 11:43 AM

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.


RE: Aide pour VBA sous Excel 2010 - Troll - 05-04-2012 20:36 PM

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 !