anthony_unac
XLDnaute Junior
Bonjour,
Voici un cas plutôt curieux ou j'ai une macro qui fonctionne très bien sur la feuille d'origine mais plus sur la copie de cette dernière.
Voici une partie de la macro :
**********************
Quand à la macro (présente dans le workbook) permettant la copie, elle se présente sous cette forme :
Pourquoi ça ne marche pas ?
Cordialement
Anthony
Voici un cas plutôt curieux ou j'ai une macro qui fonctionne très bien sur la feuille d'origine mais plus sur la copie de cette dernière.
Voici une partie de la macro :
**********************
Code:
Private Sub Worksheet_Change(ByVal Target As Range) 'au changement dans l'onglet
'si l'adresse de la cellule où a lieu le changement est différente de D6, sort de la procédure
If Target.Address <> "$D$6" Then Exit Sub
'si D6 est effacée, efface aussi G6 et H6
If Target.Value = "" Then
[G6] = ""
[H6] = ""
Exit Sub
End If
's'il existe au moins une occurrence de D6 dans la colonne U, lance la macro
If Not Columns(21).Find(Target.Value, , xlValues, xlWhole) Is Nothing Then
[G6] = "PRODUIT TECHNIQUE"
[H6] = "SAV"
End If
's'il existe au moins une occurrence de D6 dans la colonne V, lance la macro
If Not Columns(22).Find(Target.Value, , xlValues, xlWhole) Is Nothing Then
[G6] = "PRODUIT EDITORIAUX"
[H6] = "DISQUE"
End If
's'il existe au moins une occurrence de D6 dans la colonne W, lance la macro
If Not Columns(23).Find(Target.Value, , xlValues, xlWhole) Is Nothing Then
[G6] = "PRODUIT EDITORIAUX"
[H6] = "LIVRE"
End If
's'il existe au moins une occurrence de D6 dans la colonne X, lance la macro
If Not Columns(24).Find(Target.Value, , xlValues, xlWhole) Is Nothing Then
[G6] = "PRODUIT ADMINISTRATIF"
[H6] = "ADMINISTRATION"
End If
's'il existe au moins une occurrence de D6 dans la colonne Y, lance la macro
If Not Columns(25).Find(Target.Value, , xlValues, xlWhole) Is Nothing Then
[G6] = "PRODUIT CAISSE"
[H6] = "CAISSE"
End If
'si l'adresse de la cellule où a lieu le changement est différente de D7, sort de la procédure
If Target.Address <> "$D$7" Then Exit Sub
'si D7 est effacée, efface aussi G7 et H7
If Target.Value = "" Then
[G7] = ""
[H7] = ""
Exit Sub
End If
's'il existe au moins une occurrence de D7 dans la colonne U, lance la macro
If Not Columns(21).Find(Target.Value, , xlValues, xlWhole) Is Nothing Then
[G7] = "PRODUIT TECHNIQUE"
[H7] = "SAV"
End If
's'il existe au moins une occurrence de D7 dans la colonne V, lance la macro
If Not Columns(22).Find(Target.Value, , xlValues, xlWhole) Is Nothing Then
[G7] = "PRODUIT EDITORIAUX"
[H7] = "DISQUE"
End If
's'il existe au moins une occurrence de D7 dans la colonne W, lance la macro
If Not Columns(23).Find(Target.Value, , xlValues, xlWhole) Is Nothing Then
[G7] = "PRODUIT EDITORIAUX"
[H7] = "LIVRE"
End If
's'il existe au moins une occurrence de D7 dans la colonne X, lance la macro
If Not Columns(24).Find(Target.Value, , xlValues, xlWhole) Is Nothing Then
[G7] = "PRODUIT ADMINISTRATIF"
[H7] = "ADMINISTRATION"
End If
's'il existe au moins une occurrence de D7 dans la colonne Y, lance la macro
If Not Columns(25).Find(Target.Value, , xlValues, xlWhole) Is Nothing Then
[G7] = "PRODUIT CAISSE"
[H7] = "CAISSE"
End If
' etc...
End Sub
Quand à la macro (présente dans le workbook) permettant la copie, elle se présente sous cette forme :
Code:
Sub Nouveau()
nom = Range("R4").Value
ActiveSheet.Copy after:=Worksheets(ThisWorkbook.Worksheets.Count)
With ActiveSheet
.Name = nom
.Range("C6:C31").ClearContents
.Range("D6:D31").ClearContents
.Range("E6:E31").ClearContents
.Range("J6:J31").ClearContents
.Range("K6:K31").ClearContents
.Range("G6:G30").ClearContents
.Range("H6:H30").ClearContents
End With
End Sub
Pourquoi ça ne marche pas ?
Cordialement
Anthony