Problème macro
Résolu
Lonyke
-
Lonyke -
Lonyke -
Bonjour,
J'ai un problème au sein de ma macro, étant débutant en VBA (c'est ma première) j'ai essayé d'introduire une condition au sein de ma macro. Or celle-ci ne fonctionne pas pourtant j'ai beau cherché l'erreur je n'arrive pas à la trouver.
Ma macro consiste à chercher dans la colonne C si la facture est payée, si celle-ci est payée alors je la copie, je la colle dans la feuille appelée Tableau N-1. Après cela je retourne dans la première feuille et je supprime les données qui sont saisies. Cela me permet de garder une trace des factures qui ont été payées l'année précédente et de bien visualiser ceux en attente de paiement.
En espérant avoir été clair, ce n'est pas simple d'expliquer avec des mots, visualiser est plus simple.
Je vous remercie par avance de votre aide, ci-dessous ma macro.
J'ai un problème au sein de ma macro, étant débutant en VBA (c'est ma première) j'ai essayé d'introduire une condition au sein de ma macro. Or celle-ci ne fonctionne pas pourtant j'ai beau cherché l'erreur je n'arrive pas à la trouver.
Ma macro consiste à chercher dans la colonne C si la facture est payée, si celle-ci est payée alors je la copie, je la colle dans la feuille appelée Tableau N-1. Après cela je retourne dans la première feuille et je supprime les données qui sont saisies. Cela me permet de garder une trace des factures qui ont été payées l'année précédente et de bien visualiser ceux en attente de paiement.
En espérant avoir été clair, ce n'est pas simple d'expliquer avec des mots, visualiser est plus simple.
Je vous remercie par avance de votre aide, ci-dessous ma macro.
Sub Macro1() ' ' Macro1 Macro If ("C2:C9") = ("Facture payée") Then Range("A2:D9").Select Selection.Copy Sheets("Tableau N-1").Select Range("A2:D9").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Sheets("Tableau N").Select Rows("2:9").Select Application.CutCopyMode = False Selection.ClearContents Rows("2:9").Select Selection.Delete Shift:=xlUp End If End Sub
A voir également:
- Problème macro
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Jitbit macro recorder - Télécharger - Confidentialité
- Télécharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Macro maker - Télécharger - Divers Utilitaires
- Macro word - Guide
1 réponse
Bonjour,
En effet, ta ligne
est fausse.
C2:C9 ... n'est rien pour ta macro...
A la limite, ça serait
Mais là encore.. il y a un souci
Ce n'est pas la plage de cellule qui peut être égale à "Facture payée" .. mais chaque cellule individuellement...
Il te faut donc faire une boucle sur chaque cellule de cette plage..
par exemple
En effet, ta ligne
If ("C2:C9") = ("Facture payée") Then
est fausse.
C2:C9 ... n'est rien pour ta macro...
A la limite, ça serait
Range("C2:C9")
Mais là encore.. il y a un souci
Ce n'est pas la plage de cellule qui peut être égale à "Facture payée" .. mais chaque cellule individuellement...
Il te faut donc faire une boucle sur chaque cellule de cette plage..
par exemple
For each C in Range("C2:C9") If C.value = "Facture payée" Then Range(cells(C.Row,1),Cells(C.Row,4)).Select '.. suite de ton code End If Next
En vous remerciant par avance.
Sub Macro1()
'
' Macro1 Macro
For Each C In Range("C2:C9")
If C.Value = "Facture payée" Then
Range(Cells(C.Row, 1), Cells(C.Row, 4)).Select
Selection.Copy
Sheets("Tableau N-1").Select
Range("A2:D9").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Tableau N").Select
Rows("2:9").Select
Application.CutCopyMode = False
Selection.ClearContents
Rows("2:9").Select
Selection.Delete Shift:=xlUp
End If
Next
End Sub
Explications à lire ici : https://codes-sources.commentcamarche.net/faq/11288-poster-un-extrait-de-code
Ensuite, Dans quelle feuille se trouvent les données de ta plage C2:C9 ?
Es-tu sûr que la cellule contient bien uniquement le texte Facture payée ( écrit strictement de la même manière, sans espaces superflues avant ou après ... avec les mêmes majuscules .. ) ?
Dans l'idéal, partage nous un classeur d'exemple (que tu peux mettre sur cijoint.com par exemple : https://www.commentcamarche.net/faq/29493-utiliser-cjoint-pour-heberger-des-fichiers )
https://www.cjoint.com/c/JJApxAWEYfg
Il reste ensuite la "coller" à gérer.
Tel que tu as écrit ton code, ça écrasera toujours la même ligne.... il te faut donc , dans la feuille N-1 trouver la première ligne vide pour y coller le résultat
Tu trouveras de nombreux exemples sur le net pour ça..
En vous remerciant
Paul