begin process at 2010 02 09 15:13:05
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Visual Basic 6

 > 

Langages dérivés

 > 

VBA

 > 

Worksheet_Change


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Worksheet_Change

mardi 19 juin 2007 à 11:42:06 | Worksheet_Change

fred.toto

Salut tout le monde,
un ptit souci avec une macro excel, je vous explique c'est pas dur à comprendre.
Je créée une nouvelle sheet sur excel dynamiquement en fonction d'une condition X quelconque.

Si X = 'Toto' then
             Sheets.Add
            ActiveSheet.Select
            
            ActiveSheet.Move After:=Sheets(Sheets.Count)
            ActiveSheet.Select
End If... Jusqu'ici rien de terrible...

Mon problème est que je veux modifier le Worksheet_Change (forcément vide) de la feuille créée pour lui affecter le code suivant:

Private Sub Worksheet_Change(ByVal Target As Range)

    If Target.Row > 6 And Target.Column > 6 And IsNumeric(Target.Value) Then
   
        Cells(Target.Row, Target.Column).Select
       
        With Selection.Font
            .Name = "Arial"
            .Size = 70
            .Strikethrough = False
            .Superscript = False
            .Subscript = False
            .OutlineFont = False
            .Shadow = False
            .Underline = xlUnderlineStyleNone
            .ColorIndex = xlAutomatic
        End With
       
        Selection.Font.Bold = True
   
        With Selection
            .HorizontalAlignment = xlCenter
            .VerticalAlignment = xlCenter
            .WrapText = False
            .Orientation = 90
            .AddIndent = False
            .IndentLevel = 0
            .ShrinkToFit = False
            .ReadingOrder = xlContext
            .MergeCells = False
        End With
   
    End If

End Sub

Est-il possible de modifier le Worksheet_Change par code?

Merci d'avance pour les eventuelles réponses.
Fred.

mardi 19 juin 2007 à 11:57:57 | Re : Worksheet_Change

JM247L

Bonjour,
Après plusieurs essais je n'ai pas réussi et en lisant ta question il m'est venu cette idée
Au niveau d'une feuille développer ton code "Worksheet_Change" et ensuite à la place d'ajouter une nouvelle feuille, tu copie cette feuille
    Sheets("Feuil1").Select
    Sheets("Feuil1").Copy After:=Sheets(2)

Bonne journée. JML

mardi 19 juin 2007 à 12:42:37 | Re : Worksheet_Change

jrivet

Membre Club
Salut,
Ou bien encore

Private Const MyWorksheetChange As String = "Private Sub Worksheet_Change(ByVal Target As Range)" & vbCrLf & _
   "If Target.Row > 6 And Target.Column > 6 And IsNumeric(Target.Value) Then" & vbCrLf & _
   "Cells(Target.Row, Target.Column).Select" & vbCrLf & _
   "With Selection.Font" & vbCrLf & _
           ".Name = ""Arial""" & vbCrLf & _
           ".Size = 70" & vbCrLf & _
           ".Strikethrough = False" & vbCrLf & _
           ".Superscript = False" & vbCrLf & _
           ".Subscript = False" & vbCrLf & _
           ".OutlineFont = False" & vbCrLf & _
           ".Shadow = False" & vbCrLf & _
           ".Underline = xlUnderlineStyleNone" & vbCrLf & _
           ".ColorIndex = xlAutomatic" & vbCrLf & _
           ".Bold = True" & vbCrLf & _
       "With Selection" & vbCrLf & _
           ".HorizontalAlignment = xlCenter" & vbCrLf & _
           ".VerticalAlignment = xlCenter" & vbCrLf & _
           ".WrapText = False" & vbCrLf & _
           ".Orientation = 90" & vbCrLf & _
           ".AddIndent = False" & vbCrLf & _
           ".IndentLevel = 0" & vbCrLf & _
           ".ShrinkToFit = False" & vbCrLf & _
           ".ReadingOrder = xlContext" & vbCrLf & _
           ".MergeCells = False" & vbCrLf & _
       "End With" & vbCrLf & "End If" & vbCrLf & "end Sub"
Private Sub CommandButton1_Click()
Dim MaFeuille As Worksheet
   Set MaFeuille = ActiveWorkbook.Worksheets.Add(After:=Sheets(Sheets.Count))
   With ThisWorkbook.VBProject.VBComponents(MaFeuille.Name).CodeModule
       Call .InsertLines(.CountOfLines + 1, MyWorksheetChange)
   End With
End Sub


By Renfield


@+: Ju£i€n
Pensez: Réponse acceptée
mardi 19 juin 2007 à 13:52:34 | Re : Worksheet_Change

fred.toto

Merci les gars pour vos réponses, 2 problèmes maintenant par rapport aux solutions proposées:

   ? Une mineure que je pense puovoir résoudre seule en réflechissant une peu: Qu'est ce que MyWorksheetChange...

   ? Plus grave, le message suivant: "Erreur d'execution 1004: L'accès par programme au projet Visual Basic n'est pas fiable"... Je vais essayer de voir à quoi ça correspond

mardi 19 juin 2007 à 14:10:43 | Re : Worksheet_Change

jrivet

Membre Club
Re,
 ?Bah MyWorksheetChange est une constante de type String c'est marqué....
 ?Il faut peu etre changer le niveau de sécurité des macro Menu Outils => Macro => Sécurité
Niveau sécurité => Bas (pour voir)
Sources Fiables => Faire confiance à tous les....




@+: Ju£i€n
Pensez: Réponse acceptée
mardi 19 juin 2007 à 14:25:13 | Re : Worksheet_Change

JM247L

Salut Jrivet
    Il y aurait un p'tit bug dans ton code ... G cherché mais je n'ai pas trouvé par contre je suis interressé car je voudrais faire la même chose mais de excel vers word

fred.toto
 x)  Doit être déclarer comme variable (puisque c'en est une)  
 x)  Va au plus court ... la copie ça marche et ça fait un code plus léger
JML

mardi 19 juin 2007 à 14:31:28 | Re : Worksheet_Change

JM247L

Plus rapide que moi Jrivet
Le changement de niveau de sécurité de solutionne pas le problème
JML
mardi 19 juin 2007 à 14:54:38 | Re : Worksheet_Change

fred.toto

Ouais j'ai vu pour la sécurité,merci quand même :)
Pour ce qui est de la constante, rien à rajouter, c'est ce qui arrive quand mes mains tapent plus vite que mon cerveau ne réflechit....
Quand je lance la macro, ça plante Excel. Tant pis je le ferai à la mains
Merci pour votre aide!
Fred.
mardi 19 juin 2007 à 16:50:50 | Re : Worksheet_Change

Molenn

Je m'excuse si je me trompe, j'ai pas trop compris si tu avais la réponse pour :
 Plus grave, le message suivant: "Erreur d'execution 1004: L'accès par programme au projet Visual Basic n'est pas fiable"... Je vais essayer de voir à quoi ça correspond
Ce que propose jrivet est presque juste (enfin même complètement puisqu'il le dit dans sa dernière phrase : faire confiance à ...), ce n'est pas le niveau de sécurité qu'il faut changer, mais c'est au même endroit (Menu Outils\macro\sécurité). dans l'onglet Editeurs approuvés, il faut cocher la case Faire confiance au projet Visual basic.

Mais si tu l'avais déjà vu, et bien .. toutes mes excuses ^^

Molenn
mardi 19 juin 2007 à 18:51:41 | Re : Worksheet_Change

JM247L

Bonsoir,
C'est super sauf que Jrivet il a oublié un "End with" avant le 2ème
  "With Selection" & vbCrLf & _
JML


Cette discussion est classée dans : false, change, with, target, worksheet


Répondre à ce message

Sujets en rapport avec ce message

Checkbox et Worksheet_change() [ par JAJA ] Merci pour la réponse mais je me suis mal exprimé.Je desire uitliser les commandes CHECKBOX1_CLICK() et CHECHBOX1 en remplacement le 1 par une variabl Worksheet_Change [ par aquaman31 ] Bonjour, j'essaye de créer une macro se déclenchant lorsque l'heure d'une cellule change, cependant je ne parviens pas à trouver le bon format sachant Worksheet_Change [ par aquaman31 ] Bonsoir à tous petite question, pour utiliser la macro Worksheet_Change, je voudrais qu'une cellule affiche une valeur(H12) en fonction de la valeur Worksheet_Change [ par aquaman31 ] Bonjour à tous, comment puis écrire "si valeur comprise entre 570 et 554 ? Merci de bien vouloir répondre, ci dessous la macro Bonne soirée à tous JC Repérer le passage d'une cellule vide à une cellule renseignée et inversement dans Worksheet Change [ par goodweath ] Bonjour, J'essaie de réaliser des opérations qui s'éxécutent dans une feuille Excel (2003) après avoir modifié la valeur d'une cellule. J'utilise don optimisation [ par maguetlolo ] Voici une macro que j'ai fait avec la fonction "enregistrer une macro" est-il possible de l'optimiser? Application.ScreenUpdating = False Wit [VBA] Problème redimensionnement et positionnement de graphique [ par mauberli ] Bonjour à tous. Je rencontre actuellement un problème avec l'intégration d'un graphique dans une de mes feuilles Excel. Le graphique s'insère bien d Pb d'exécution du code nom cellule=nom onglet [ par inea ] Bonjour à tous !J'ai une petite question à vous poser concernant un code tout bête mais qui me bloque sous VBA Excel.Voilà j'ai un classeur qui recens Worksheet_Change [ par aquaman31 ]


Nos sponsors


Appels d'offres

Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,562 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales