Besoin aide sur Macro Excel....
Dernière réponse : dans Programmation
Bonjour a tous,
Je suis tres novice dans la réalisation de macro dans excel. Je recherche un moyen de faire effacer le contenue des certaines cellules choisies quand une logique est appliqué. Ex: si c4 est plus petit que c5 alors efface a1, d4, e5, f2. Est-ce possible.
Merci a tous pour votre aide !!!
bobmcgee
Je suis tres novice dans la réalisation de macro dans excel. Je recherche un moyen de faire effacer le contenue des certaines cellules choisies quand une logique est appliqué. Ex: si c4 est plus petit que c5 alors efface a1, d4, e5, f2. Est-ce possible.
Merci a tous pour votre aide !!!
bobmcgee
Autres pages sur : besoin aide macro excel
Lassé par la pub ? Créez un compte
Oui, c'est possible ....
Encore une fois, pour réaliser une macro Excel, il y a une méthode infaillible :
1°) Décomposer en étapes simples
2°) Enregister chacune de ces étapes en ayant pris le soin de démarrer l'enregistreur de macro.
3°) Lire le code généré, le comprendre.
La troisième étape est la plus délicate.
Je propose :
Réfléchir
Lire d'aide
Réfléchir
Demander de l'aide sur PPC avec un exemple précis
Réfléchir
Comme tu peux le constater en lisant d'autres topiks sur le sujet Excel (ou autres), j'ai (ou d'autres) toujours eu plaisir à aider les PPCistes en difficulté pourvu qu'ils aient avancé dans la "méthode infaillible".
Je t'invite donc à découvrir par toi même comment :
Choisir une cellule
Appliquer une logique
Supprimer un contenu
Poste-nous vite tes tentatives, avec le bout de code associé, tu auras bientôt une macro complète et fonctionnelle.
Encore une fois, pour réaliser une macro Excel, il y a une méthode infaillible :
1°) Décomposer en étapes simples
2°) Enregister chacune de ces étapes en ayant pris le soin de démarrer l'enregistreur de macro.
3°) Lire le code généré, le comprendre.
La troisième étape est la plus délicate.
Je propose :
Réfléchir
Lire d'aide
Réfléchir
Demander de l'aide sur PPC avec un exemple précis
Réfléchir
Comme tu peux le constater en lisant d'autres topiks sur le sujet Excel (ou autres), j'ai (ou d'autres) toujours eu plaisir à aider les PPCistes en difficulté pourvu qu'ils aient avancé dans la "méthode infaillible".
Je t'invite donc à découvrir par toi même comment :
Choisir une cellule
Appliquer une logique
Supprimer un contenu
Poste-nous vite tes tentatives, avec le bout de code associé, tu auras bientôt une macro complète et fonctionnelle.
Voila mon probleme,
J'ai reussie jusqu'ici a faire ma macro, ca donne ceci:
Sub lundi()
If Range("w41") = 1 Then
If Range("w43") = 2 Then
Range("e6,e8:e11,e13:e14,e16,e18,e19,e21,e23,e25,e27:e28").Select
Selection.ClearContents
Range("A1").Select
End If
End If
End Sub
Sub mardi()
If Range("w41") = 1 Then
If Range("w43") = 2 Then
Range("i6,i8:i11,i13:i14,i16,i18,i19,i21,i23,i25,i27:i28").Select
Selection.ClearContents
Range("A1").Select
End If
End If
End Sub
Sub mercredi()
If Range("w41") = 1 Then
If Range("w43") = 2 Then
Range("m6,m8:m11,m13:m14,m16,m18,m19,m21,m23,m25,m27:m28").Select
Selection.ClearContents
Range("A1").Select
End If
End If
End Sub
Sub jeudi()
If Range("w41") = 1 Then
If Range("w43") = 2 Then
Range("q6,q8:q11,q13:q14,q16,q18,q19,q21,q23,q25,q27:q28").Select
Selection.ClearContents
Range("A1").Select
End If
End If
End Sub
Sub vendredi()
If Range("w41") = 1 Then
If Range("w43") = 2 Then
Range("u6:u16,u18,u20:u21,u23:u30,u32:u35,u37:u39,u41:u47").Select
Selection.ClearContents
Range("A1").Select
End If
End If
End Sub
Sub samedi()
If Range("w41") = 1 Then
If Range("w43") = 2 Then
Range("y6:y16,y18,y20:y21,y23:y30,y32:y35,y37:y39,y41:y47").Select
Selection.ClearContents
Range("A1").Select
End If
End If
End Sub
Sub dimanche()
If Range("w41") = 1 Then
If Range("w43") = 2 Then
Range("ac6:ac16,ac18,ac20:ac21,ac23:ac30,ac32:ac35,ac37:ac39,ac41:ac47").Select
Selection.ClearContents
Range("A1").Select
End If
End If
End Sub
Sub absence()
If Range("w41") = 1 Then
If Range("w43") = 2 Then
Range("ag6:ag16,ag18,ag20:ag21,ag23:ag30,ag32:ag35,ag37:ag39,ag41:ag47").Select
Selection.ClearContents
Range("A1").Select
End If
End If
End Sub
Sub a()
Call lundi
Call mardi
Call mercredi
Call jeudi
Call vendredi
Call samedi
Call dimanche
Call absence
End Sub
Mon probleme est le suivant: j'ai 8 feuilles avec le meme fonction ci haut. je voudrais faire une fonction de CALL qui rappelle le dernier SUB de chaque feuille (sub a(), sub b() , ect jusqu'a sub h()) pour que c'elle-ci s'execute a l'ouverture de mon dossier mais la fonction CALL semble vouloir prendre qu'une seule donnée. Aussitot que je lui ajoute une deuxieme donnée, ca bogue. Voici ou j'en suis...
Private Sub Workbook_Open()
Call Feuil22.a
Call Feuil23.b
Call Feuil24.c
Call Feuil25.d
Call Feuil28.e
Call Feuil29.f
Call Feuil31.g
Call Feuil33.h
End Sub
Je crois que c'est complet......
Merci a tous
J'ai reussie jusqu'ici a faire ma macro, ca donne ceci:
Sub lundi()
If Range("w41") = 1 Then
If Range("w43") = 2 Then
Range("e6,e8:e11,e13:e14,e16,e18,e19,e21,e23,e25,e27:e28").Select
Selection.ClearContents
Range("A1").Select
End If
End If
End Sub
Sub mardi()
If Range("w41") = 1 Then
If Range("w43") = 2 Then
Range("i6,i8:i11,i13:i14,i16,i18,i19,i21,i23,i25,i27:i28").Select
Selection.ClearContents
Range("A1").Select
End If
End If
End Sub
Sub mercredi()
If Range("w41") = 1 Then
If Range("w43") = 2 Then
Range("m6,m8:m11,m13:m14,m16,m18,m19,m21,m23,m25,m27:m28").Select
Selection.ClearContents
Range("A1").Select
End If
End If
End Sub
Sub jeudi()
If Range("w41") = 1 Then
If Range("w43") = 2 Then
Range("q6,q8:q11,q13:q14,q16,q18,q19,q21,q23,q25,q27:q28").Select
Selection.ClearContents
Range("A1").Select
End If
End If
End Sub
Sub vendredi()
If Range("w41") = 1 Then
If Range("w43") = 2 Then
Range("u6:u16,u18,u20:u21,u23:u30,u32:u35,u37:u39,u41:u47").Select
Selection.ClearContents
Range("A1").Select
End If
End If
End Sub
Sub samedi()
If Range("w41") = 1 Then
If Range("w43") = 2 Then
Range("y6:y16,y18,y20:y21,y23:y30,y32:y35,y37:y39,y41:y47").Select
Selection.ClearContents
Range("A1").Select
End If
End If
End Sub
Sub dimanche()
If Range("w41") = 1 Then
If Range("w43") = 2 Then
Range("ac6:ac16,ac18,ac20:ac21,ac23:ac30,ac32:ac35,ac37:ac39,ac41:ac47").Select
Selection.ClearContents
Range("A1").Select
End If
End If
End Sub
Sub absence()
If Range("w41") = 1 Then
If Range("w43") = 2 Then
Range("ag6:ag16,ag18,ag20:ag21,ag23:ag30,ag32:ag35,ag37:ag39,ag41:ag47").Select
Selection.ClearContents
Range("A1").Select
End If
End If
End Sub
Sub a()
Call lundi
Call mardi
Call mercredi
Call jeudi
Call vendredi
Call samedi
Call dimanche
Call absence
End Sub
Mon probleme est le suivant: j'ai 8 feuilles avec le meme fonction ci haut. je voudrais faire une fonction de CALL qui rappelle le dernier SUB de chaque feuille (sub a(), sub b() , ect jusqu'a sub h()) pour que c'elle-ci s'execute a l'ouverture de mon dossier mais la fonction CALL semble vouloir prendre qu'une seule donnée. Aussitot que je lui ajoute une deuxieme donnée, ca bogue. Voici ou j'en suis...
Private Sub Workbook_Open()
Call Feuil22.a
Call Feuil23.b
Call Feuil24.c
Call Feuil25.d
Call Feuil28.e
Call Feuil29.f
Call Feuil31.g
Call Feuil33.h
End Sub
Je crois que c'est complet......
Merci a tous
Mais pourquoi diable utilises-tu CALL ?
As-tu lu l'aide sur CALL ? Alors fais-le et vire moi ces CALL en connaissance de cause.
Où est ton problème ? C'est pas du code très propre mais ça devrait fonctionner.
Tu parles d'avoir ce code dans chacune de tes feuilles ! Euh, tu peux tout mettre dans le code du Workbook. Et ne pas avoir à dupliquer n fois ton code.
As-tu lu l'aide sur CALL ? Alors fais-le et vire moi ces CALL en connaissance de cause.
Où est ton problème ? C'est pas du code très propre mais ça devrait fonctionner.
Tu parles d'avoir ce code dans chacune de tes feuilles ! Euh, tu peux tout mettre dans le code du Workbook. Et ne pas avoir à dupliquer n fois ton code.
En espérant que ça t'aide :
Private Sub EffacerUnJour (Feuille as Worksheet, Jour as Integer)
Dim PlageASuppr As Variant
PlageASuppr = Array("e6,e8:e11,e13:e14,e16,e18,e19,e21,e23,e25,e27:e28", _
"i6,i8:i11,i13:i14,i16,i18,i19,i21,i23,i25,i27:i28", _
"m6,m8:m11,m13:m14,m16,m18,m19,m21,m23,m25,m27:m28", _
"q6,q8:q11,q13:q14,q16,q18,q19,q21,q23,q25,q27:q28", _
"u6:u16,u18,u20:u21,u23:u30,u32:u35,u37:u39,u41:u47", _
"y6:y16,y18,y20:y21,y23:y30,y32:y35,y37:y39,y41:y47", _
"ac6:ac16,ac18,ac20:ac21,ac23:ac30,ac32:ac35,ac37:ac39,ac41:ac47", _
"ag6:ag16,ag18,ag20:ag21,ag23:ag30,ag32:ag35,ag37:ag39,ag41:ag47" )
If Feuille.Range("w41") = 1 And Feuille.Range("w43") = 2 Then
Feuille.Range(PlageASuppr(Jour)).ClearContents
End If
End Sub
Private Sub EffacerTousLesJours (Feuille as Worksheet)
Dim i As Integer
For i = 0 to 7
EffacerUnJour Feuille, i
Next
End Sub
Private Sub Workbook_Open()
EffacerTousLesJours Feuil22
EffacerTousLesJours Feuil23
EffacerTousLesJours Feuil24
EffacerTousLesJours Feuil25
EffacerTousLesJours Feuil28
EffacerTousLesJours Feuil29
EffacerTousLesJours Feuil31
EffacerTousLesJours Feuil33
End Sub
Voici la clé de mon probleme:
Private Sub workbook_open()
If Worksheets("1 Nuit1").Range("w41") = 1 Then
If Worksheets("1 Nuit1").Range("w43") = 2 Then
Sheets(Array("1 Nuit1", "1 Jour1")).Select
Range("e6:ag28").Select
Selection.ClearContents
Range("A1").Select
Sheets(Array("1 Nuit1", "1 Jour1")).Select
Range("e6:ag47").Select
Selection.ClearContents
Range("A1").Select
End If
End If
If Worksheets("1 Nuit2").Range("w41") = 1 Then
If Worksheets("1 Nuit2").Range("w43") = 2 Then
Sheets(Array("1 Nuit2", "1 Jour2")).Select
Range("e6:ag28").Select
Selection.ClearContents
Range("A1").Select
Sheets(Array("1 Nuit2", "1 Jour2")).Select
Range("e6:ag47").Select
Selection.ClearContents
Range("A1").Select
End If
End If
End Sub
Merci a tous
bobmcgee
Private Sub workbook_open()
If Worksheets("1 Nuit1").Range("w41") = 1 Then
If Worksheets("1 Nuit1").Range("w43") = 2 Then
Sheets(Array("1 Nuit1", "1 Jour1")).Select
Range("e6:ag28").Select
Selection.ClearContents
Range("A1").Select
Sheets(Array("1 Nuit1", "1 Jour1")).Select
Range("e6:ag47").Select
Selection.ClearContents
Range("A1").Select
End If
End If
If Worksheets("1 Nuit2").Range("w41") = 1 Then
If Worksheets("1 Nuit2").Range("w43") = 2 Then
Sheets(Array("1 Nuit2", "1 Jour2")).Select
Range("e6:ag28").Select
Selection.ClearContents
Range("A1").Select
Sheets(Array("1 Nuit2", "1 Jour2")).Select
Range("e6:ag47").Select
Selection.ClearContents
Range("A1").Select
End If
End If
End Sub
Merci a tous
bobmcgee
Lassé par la pub ? Créez un compte
- Contenus similaires :
Tags :
