Réunir deux macros en une [résolu]

Likith

XLDnaute Nouveau
Bonjour, bonjour!

Je cherche à "souder" deux macro.

Je pense que mon prblème viens de la conception de la première avec une boucle for.

Plus précisément la première macro 1 cherche dans la colonne A des valeurs "A".
Si cette valeur est trouvée, elle supprime un nombre de lignes en dessous.

Sub Macro1()

Application.ScreenUpdating = False
Sheets("Visualisation et impression").Activate
Dim i As Integer
For i = 1 To 100
If Cells(i, 1) = "A" Then
Range("A" & i, "K" & i + 20).Select
Selection.EntireRow.Delete
Range("A11").Select
End If
Next i
Application.ScreenUpdating = True

End Sub

La seconde viens chercher une plage de cellule sur une feuille pour la copier sur ma feuille principale après la dernière valeur de la colonne A.

Sub Macro2()
Dim DerLigne As Long
Sheets("Coûts énergies").Select
Range("A10:K30").Select
Selection.Copy
Sheets("Visualisation et impression").Activate
DerLigne = Range("A65536").End(xlUp).Row + 1
Range("A" & DerLigne).Select
ActiveSheet.Paste
End Sub


Je cherche donc à faire une case à cocher qui active une macro. Cette macro doit effacer la plage de cellule si "A" est dans la colonne A, sinon elle doit copier la plage de cellule vers la page principale.

Merci d'avance de vos réponses!!
 
Dernière édition:

Likith

XLDnaute Nouveau
Re : Réunir deux macros en une

Peut être devrais-je faire une macro intermédiaire allant chercher la macro 2 si la case est cochée et la macro 1 si elle est décochée? Mais comment faire?

J'ai finalement associé une cellule à ma case à cocher: j'ai donc deux valeurs : VRAI ou FAUX

J'ai donc créé cette macro pour appeller mes macro1 ou macro2
Sub CaseCochée1()

If Cells(6, 2) = "VRAI" Then
Application.Run ("Macro2")
Else
Application.Run ("Macro1")
End If
End Sub

Mais cette macro ne fonctionne pas! Ou est donc le problème?

*EDIT: J'ai trouvé!
Il fallait faire ceci :
Sub CaseCochée1()
'Enclenche les macros copie ou supprime correspondantes à la case cochée
Application.ScreenUpdating = False
If Sheets("ValeursCasesCochées").Cells(6, 2).Value = True Then
Application.Run ("Macro2")
Else
Application.Run ("Macro1")
End If
Application.ScreenUpdating = True
End Sub

La cellule (6,2) correspondant à la cellule associées à ma case à cocher.



Je me retrouve donc avec 3 macros par case à cocher! Ca n'est pas vraiment "légé" à gérer surtout si doivent advenir des modifications...
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 490
Messages
2 088 883
Membres
103 981
dernier inscrit
vinsalcatraz