Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2879 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VBA] - Erreur lors de la Séléction ou Supression d'une plage

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[VBA] - Erreur lors de la Séléction ou Supression d'une plage

n°1250739
bl@p_psx
Admin G15-france
Posté le 22-11-2005 à 14:50:08  profilanswer
 

Bonjours ! 1er post dans VBA !
 
Voilà le topo :
 
- J'écrit un petit script en VBA Excel pour qu'en fonction du contenue d'une plage de cellule, la couleur du fond de cellule et du texte change.
 
- J'etait partis sur une MEFC, mais limité à 3 et jai besoins de beaucoup plus de possibilité.
 
J'ai donc decidé de debutter en VBA, chose que je n'avais jamais encore fait.
 
J'ai fait pas mal de teste et j'obtient un truc qui fonctionne maintenant sauf que ...
 
J'ai un debug et donc une interuption de la macro lorsque je selectionne plusieur cellule.
 
Exemple: j'ecrit pg dans une cellule, celle-ci se colore en jaune, et le texte egalement. Si je supprime le contenue de la cellule, le fond redevient gris et le texte s'efface bien. Par contre, si je selectionne plusieurs cellule ( tout ou pas contenant pg ) j'ai une erreur d'execution '13' Incompatibilité de type'.
 
Voilà ou j'en suis, je cherche en ce moment meme sur MSDN si je trouve pas une solution !
 
@+
 
ps: voilà mon code, très simple
 

Code :
  1. Private Sub Worksheet_Change(ByVal ActiveCell As Range)
  2. If Not Intersect(ActiveCell, Range("D3:AU29" )) Is Nothing Then
  3.     With ActiveCell
  4.     If .Value = "pg" Then
  5.         .Interior.ColorIndex = 6
  6.         .Font.ColorIndex = 6
  7.     ElseIf ActiveCell.Value = "md" Then
  8.         .Interior.ColorIndex = 4
  9.         .Font.ColorIndex = 4
  10.     Else
  11.         .Interior.ColorIndex = 15
  12.     End If
  13.     End With
  14. End If
  15. End Sub


---------------
:Moultiplayers:.:Quatuor Chevalier:.:Admin G15-france.com:.:Wiki -G15-france:.:-Papa-:.
mood
Publicité
Posté le 22-11-2005 à 14:50:08  profilanswer
 

n°1250770
watashi
La démotivation : JAMAIS !
Posté le 22-11-2005 à 15:31:57  profilanswer
 

Salut Bl@p_psx,
 
Quand tu sélectionne une plage ton programme ne peux pas éxécuter ne comprends pas ton activecell, c'est que qui te génére une erreur. Tu peux corriger ça grace à for each... next :

Code :
  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2. Dim cl As Range
  3. For Each cl In Target
  4.      cl.Activate
  5. If Not Intersect(ActiveCell, Range("D3:AU29" )) Is Nothing Then
  6.     With ActiveCell
  7.     If .Value = "pg" Then
  8.         .Interior.ColorIndex = 6
  9.         .Font.ColorIndex = 6
  10.     ElseIf ActiveCell.Value = "md" Then
  11.         .Interior.ColorIndex = 4
  12.         .Font.ColorIndex = 4
  13.     Else
  14.         .Interior.ColorIndex = 15
  15.     End If
  16.     End With
  17. End If
  18. Next
  19. End Sub

Bon courage à toi :)


---------------
Je bidouillle c'est sur... Mais j'essaye de faire en sorte que ça marche ;-)
n°1250775
bl@p_psx
Admin G15-france
Posté le 22-11-2005 à 15:40:00  profilanswer
 

je me doutais bien de ca, mais je ne trouvais pas comment corrigé ...
 
je vais regarder ton code !
 
je te tient au courant !
 
@+ et merci  
 
ps: en passant, manquerais pas un End For ?


---------------
:Moultiplayers:.:Quatuor Chevalier:.:Admin G15-france.com:.:Wiki -G15-france:.:-Papa-:.
n°1250789
bl@p_psx
Admin G15-france
Posté le 22-11-2005 à 15:53:07  profilanswer
 

bon, après avoir tester, j'ai reussi à faire un foreach sur le range, mais pas sur celui qui etait séléctionner uniquement. :D c'etait donc tres lent, le temp de passer toutes les cellules en revue !
 
bon, je continue de tester, mais je tatonne beaucoup !
 
encore merci !
 
@+


---------------
:Moultiplayers:.:Quatuor Chevalier:.:Admin G15-france.com:.:Wiki -G15-france:.:-Papa-:.
n°1250792
bl@p_psx
Admin G15-france
Posté le 22-11-2005 à 15:56:05  profilanswer
 

en fait, j'ai reussis, manquais que le next cl dans ton code ( et j'avais pas vu la modif en la declaration ^^ ByVal Target As Range )
 
merci beaucoup !
 
@+


---------------
:Moultiplayers:.:Quatuor Chevalier:.:Admin G15-france.com:.:Wiki -G15-france:.:-Papa-:.
n°1250804
watashi
La démotivation : JAMAIS !
Posté le 22-11-2005 à 16:01:36  profilanswer
 

bl@p_psx a écrit :

ps: en passant, manquerais pas un End For ?

Nanananan, pour termier ou plutôt boucler un for il faut NEXT
 

bl@p_psx a écrit :

bon, après avoir tester, j'ai reussi à faire un foreach sur le range, mais pas sur celui qui etait séléctionner uniquement. :D c'etait donc tres lent, le temp de passer toutes les cellules en revue !
 
bon, je continue de tester, mais je tatonne beaucoup !
 
encore merci !
 
@+

La boucle telle que je te l'ai mise en place autour de ta macro marchait pas chez toi ?


---------------
Je bidouillle c'est sur... Mais j'essaye de faire en sorte que ça marche ;-)
n°1250844
bl@p_psx
Admin G15-france
Posté le 22-11-2005 à 16:43:27  profilanswer
 

j'ai repondu, et d'ailleur, c'est à moi qu'il manquais le next ^^
 
enfait, j'avais oublier le next, et la declaration au debut !
 
merci encore !
 
@+


---------------
:Moultiplayers:.:Quatuor Chevalier:.:Admin G15-france.com:.:Wiki -G15-france:.:-Papa-:.
n°1250864
watashi
La démotivation : JAMAIS !
Posté le 22-11-2005 à 16:57:45  profilanswer
 

On a nos post qui ont dû se croiser :)


---------------
Je bidouillle c'est sur... Mais j'essaye de faire en sorte que ça marche ;-)

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VBA] - Erreur lors de la Séléction ou Supression d'une plage

 

Sujets relatifs
Recherche litterature afin de developper en VBA sous catia V5VBA Excel Find indépendant des accents
Erreur compilation .otransfert de donnés VBA
erreur de segmentation sur stringla sélection de la base de données échoue
[VBA EXCEL]Création d'une barre de commande pour un userform[VBA] Accéder à un formulaire access via une macro sous excel
VBA Excel : gestion de fichiers .xls[Hibernate] Erreur de mapping
Plus de sujets relatifs à : [VBA] - Erreur lors de la Séléction ou Supression d'une plage


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR