Marco Desactiver Macro puis Reactiver

baldron

XLDnaute Nouveau
Bonjours, voila je voudrais savoir si il était possible d'avoir un code pour désactiver une macro et pour le réactiver.

Parceque j'ai un probleme une de mes macro empeche une autre de fonctionner, donc je voudrai que quand j'utilise la derniere macro elle desactive l'autre, fait son travail, puis la réactive.

Mes macros qui se génent, c'est une macro qui me colorie les cellules quand je les selectionnent, et du coup ca empeche un collage special:

Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
True, Transpose:=False

c'est le skipblank qui pose probleme, et je veut pa le desactiver


Merci
 

Cousinhub

XLDnaute Barbatruc
Re : Marco Desactiver Macro puis Reactiver

Bonjour
salut skoobi

je subodore une macro évènementielle qui colore la cellule sélectionnée...
Peut-être qu'en évitant la sélection avant collage....
En regardant les deux codes, cela sera sûrement plus facile
 

baldron

XLDnaute Nouveau
Re : Marco Desactiver Macro puis Reactiver

Ba voila je vais vous mettre les 2 macro:

La premiere sur une feuille nommée data base qui me colorie les cellules quand je clique dessus:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Static lastCell As Range
If Not lastCell Is Nothing Then
lastCell.Interior.ColorIndex = xlNone
End If
If Not Intersect(Target, Range("B4:AK2002")) Is Nothing Then
With Target.Interior
.ColorIndex = 37
.Pattern = xlSolid
End With
Set lastCell = Target
Else
Exit Sub
End If
End Sub


La deuxiéme qui me fait un copier coller spécial a partir d'une deuxiéme feuille:

Sub enregetat()
Range("D18").Select
Selection.Copy
Sheets("Data Base Geral").Select
Cells(3 + Range("AZ1"), 31).Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
True, Transpose:=False
Sheets("Sorties").Select
Range("D19").Select
Selection.Copy
Sheets("Data Base Geral").Select
Cells(3 + Range("AZ1"), 34).Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
True, Transpose:=False
Sheets("Sorties").Select
Range("D20").Select
Selection.Copy
Sheets("Data Base Geral").Select
Cells(3 + Range("AZ1"), 37).Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
True, Transpose:=False
Sheets("Sorties").Select
Range("D18:D20").ClearContents

End Sub


Voila et ces deux macros se génent parceque je pense que je le coloriage des cellules quand elles sont séléctionnées empêchent un colage avec Skipblank true.
C'est pourquoi je voudrai mettre dans la deuxieme macro au debut un code qui desactiverai la macro de coloriage, puis a la fin la reactiverai.

Je voulais eviter de faire des patés la avec mes codes mais bon, c'est peu etre plus explicite comme ca.
 

Cousinhub

XLDnaute Barbatruc
Re : Marco Desactiver Macro puis Reactiver

re-,
avec ce code, je copie et effectue un collage spécial sans sélectionner de cellules.
Regarde si cela te convient

Code:
Sub enregetat()
Dim Mavar As Long
Mavar = Sheets("Data Base Geral").Range("AZ1")
Range("D18").Copy
Sheets("Data Base Geral").Cells(3 + Mavar, 31).PasteSpecial _
    Paste:=xlValues, Operation:=xlNone, SkipBlanks:=True, Transpose:=False
Range("D19").Copy
Sheets("Data Base Geral").Cells(3 + Mavar, 34).PasteSpecial _
    Paste:=xlValues, Operation:=xlNone, SkipBlanks:=True, Transpose:=False
Range("D20").Copy
Sheets("Data Base Geral").Cells(3 + Mavar, 37).PasteSpecial _
    Paste:=xlValues, Operation:=xlNone, SkipBlanks:=True, Transpose:=False
Range("D18: D20").ClearContents
End Sub

PS : Efface l'espace avant D20 (rajouter pour éviter le smiley)
 

degap05

XLDnaute Impliqué
Re : Marco Desactiver Macro puis Reactiver

re-,
avec ce code, je copie et effectue un collage spécial sans sélectionner de cellules.
Regarde si cela te convient

Code:
Sub enregetat()
Dim Mavar As Long
Mavar = Sheets("Data Base Geral").Range("AZ1")
Range("D18").Copy
Sheets("Data Base Geral").Cells(3 + Mavar, 31).PasteSpecial _
    Paste:=xlValues, Operation:=xlNone, SkipBlanks:=True, Transpose:=False
Range("D19").Copy
Sheets("Data Base Geral").Cells(3 + Mavar, 34).PasteSpecial _
    Paste:=xlValues, Operation:=xlNone, SkipBlanks:=True, Transpose:=False
Range("D20").Copy
Sheets("Data Base Geral").Cells(3 + Mavar, 37).PasteSpecial _
    Paste:=xlValues, Operation:=xlNone, SkipBlanks:=True, Transpose:=False
Range("D18: D20").ClearContents
End Sub

PS : Efface l'espace avant D20 (rajouter pour éviter le smiley)



Bonjour, le forum, baldron, bhbh,

J'ai exactement le même problème.
Mais je ne sais pas adapter la partie de ma macro qui copie. Je voudrais utiliser le code de bhbh, pastespecial, copier sans sélectionner les cellules.

Voici mon code:

Sub EnvoiFeuilleMail()
ActiveSheet.Copy
Range("A1:L43").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False 'colle les valeurs
Application.CutCopyMode = False
Application.DisplayAlerts = False

Application.DisplayAlerts = True
'Envoi le classeur créé par mail
ActiveWorkbook.SendMail "toto@truc.fr", _
"Test envoi"
'Ferme sans sauver
ActiveWorkbook.Close False
End Sub


Merci de votre aide.
 

skoobi

XLDnaute Barbatruc
Re : Marco Desactiver Macro puis Reactiver

Bonjour degap05,

Bon réflexe de vouloir enlever la sélection ;), mais tu ne dis pas où tu veux coller. Pour l'instant, le collage se fait au même endroit, remplace Selection par la cellule de destination. De plus, tu peux enlever ce qui est en rouge car inutile:

ActiveSheet.Copy
Range("A1:L43").Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False 'colle les valeurs
 

Discussions similaires

Réponses
2
Affichages
751

Membres actuellement en ligne

Statistiques des forums

Discussions
312 871
Messages
2 093 102
Membres
105 627
dernier inscrit
jean-marc.brillant