Transformer code en macro

Résolu/Fermé
dudulleray - 2 févr. 2013 à 13:45
 dudulleray - 3 févr. 2013 à 10:36
Bonjour a toutes et tous, Forum



Voila je souhaiterai svp si cela est possible en VBA transformer le code ci-dessous, qui déplace a l'aide des touches flèches du clavier une barre de repère jaune ici dans les colonnes A B C

PS: le code actuellement fonctionne, mais j'aimerai l'avoir sous forme de macro que je puisse appeller quand et si besoin.

je vous remercie d'avance pour votre temps et de votre savoir.

Bonne après midi a tous

Cordialement Ray

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  Set champ = Range("A1:C1000")                 'Ou Range("La zone") si zone nommée

  For Each n In ActiveWorkbook.Names            'Restitution couleurs
    If n.Name = "mémoCoul" Then trouvé = True
  Next n

  If trouvé Then
    ncol = [mémoCoul]
    Z = [mémozone]
    col1 = champ.Areas(Z).Column
    col2 = champ.Areas(Z).Column + champ.Areas(Z).Columns.Count - 1
    
    For I = 1 To ncol
      x = "mémoAdresse" & I
      A = Evaluate([x])
      x = "mémoCouleur" & I
      B = Evaluate([x])
      Range(A).Interior.ColorIndex = B
    Next I
  End If

  '*** Mémorisation des couleurs
  If Not Intersect(champ, Target) Is Nothing And Target.Count = 1 Then
    
    For I = 1 To champ.Areas.Count
      If Not Intersect(champ.Areas(I), Target) Is Nothing Then zone = I
    Next I

    col1 = champ.Areas(zone).Column
    col2 = champ.Areas(zone).Column + champ.Areas(zone).Columns.Count - 1
    ActiveWorkbook.Names.Add Name:="mémoZone", RefersToR1C1:="=" & Chr(34) & zone & Chr(34)
    col1 = champ.Areas(zone).Column
    col2 = champ.Areas(zone).Column + champ.Areas(zone).Columns.Count - 1
    ncol = col2 - col1 + 1
    ActiveWorkbook.Names.Add Name:="mémoCoul", RefersToR1C1:="=" & Chr(34) & ncol & Chr(34)

    For I = 1 To ncol
      ActiveWorkbook.Names.Add Name:="mémoAdresse" & I, RefersToR1C1:= _
                               "=" & Chr(34) & Cells(Target.Row, I + col1 - 1).Address & Chr(34)
      ActiveWorkbook.Names.Add Name:="mémoCouleur" & I, RefersToR1C1:= _
                               "=" & Cells(Target.Row, I + col1 - 1).Interior.ColorIndex
      Cells(Target.Row, I + col1 - 1).Interior.ColorIndex = 6  'Jaune couleur de la barre de déplacement
    Next I
  
      End If
End Sub
A voir également:

8 réponses

f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
2 févr. 2013 à 15:35
Bonjour,

mais j'aimerai l'avoir sous forme de macro que je puisse appeller quand et si besoin. Precisez votre pensee svp!!
1
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
2 févr. 2013 à 16:09
Re,

Vu qu'il faut etre sur une feuille de calcul, gardez cette macro (c'est une macro) comme telle. Si vous voulez que cette macro se deroule quand vous en avez besoin, ajoutez au debut le test d'un drapeau: si a un (true) le code se deroule, si a zero (false) sortie de la macro. A vous de gere le drapeau.
1
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
3 févr. 2013 à 07:51
Bonjour,

un exemple avec un bouton avec ou sans. Cela peut-etre une valeur de cellules ou un click sur une cellule particuliere, une date ou autre evenement.

https://www.cjoint.com/?CBdhWOkNook

Bonne suite
1
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
3 févr. 2013 à 09:28
1

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Salut f894009,

Merci pour la réponse, donc je souhaiterai faire de ce code une macro que je pourrai lancer par un simple

Call Barre_de_repere
par exemple

ca me permetterai de l'adapter et de l'utilser dans un autre programme par la suite.

Merci a plus tard bonne après midi

Ray
0
Re salut f894009

Merci pour cette réponse

si svp vous avez le temps, pouvez vous me faire un exemple, je ne sais pas trop gérer les drapeaux comme vous mes dites.

merci pour votre aide

Ray
0
Bonjour f894009, Forum

Bien recu le fichier, je vous en remercie.

j'ai essayer le code et ca fonctionne bien, cela va mettre très utile pour un autre programme ou il me faudra solliciter la barre par un bouton.

Mais pour mon programme actuel apparament il me faut cliquer sur le bouton plus dans une des colonnes A B C pour voir apparaitre la barre de défilement, cela ne m'ai
pas trop prtique pour ce cas.

Serait'il possible svp et toujours bien sur si vous avez le temps que cette barre soit toujours apparente et active dès l'ouverture du programme.

Merci de vous interresser a mon soucis, j'ai essayer hier de trouver comment faire mais je ni suis pas parvenu.

Merci j'apprécie beaucoup votre aide, bon Dimanche a vous

Cordialement Ray
0
Re salut f894009

Bien recu le nouveau fichier, ca fonctione bien et je vais l'adapter a mon programme

tout en regardement comment ca marche

Merci a vous et pour votre temps consacré pour le code dont j'avais besoin.

je vous souhaite un excellent Dimanche

Bye bye a bientot sans doute et encore merci

Cordialement Raymond
0