Accueil > Forum > > > > Test pour chaque cellule d'une plage
Test pour chaque cellule d'une plage
mardi 20 novembre 2007 à 20:21:55 |
Test pour chaque cellule d'une plage

batteur_fou
|
Bonjour à tous, mon objectif est de tester si la couleur d'une des cellule est le blanc : Function couleur(pla As Range) As Boolean Dim c As Range For Each c In Worksheets("Feuille1").pla.Cells If c.Interior.Color <> RGB(0, 0, 0) Then couleur = False Exit For Else couleurr = True End If Next End Function Le problème est qu'il me met une erreur d'exécution 438 : propriété ou méthode non gérée par cet objet... Comment remèdier à ça? Merci d'avance
|
|
mardi 20 novembre 2007 à 22:37:40 |
Re : Test pour chaque cellule d'une plage

caco64
|
ton problème vient de la collection range pla représnete un range càd une plage de cellules d'une feuilles particulière (la feuille active je pense). Il faut donc que tu définisses la feuille avant de lancer le for...each. Et un range ça se définit avec set. Voilà ce que j'ai fait, ça marche chez moi :
Sub renvoie_couleur() Dim coul As Boolean Dim pla_range As Range
Set pla_range = Worksheets("Feuille1").Range("A2:D10") coul = couleur(pla_range) MsgBox coul End Sub
Function couleur(pla As Range) As Boolean Dim cel As Range For Each cel In pla If cel.Interior.Color <> RGB(0, 0, 0) Then couleur = False Exit For Else couleur = True End If Next End Function
La haine aveugle n'est pas sourde
|
|
mardi 20 novembre 2007 à 23:03:18 |
Re : Test pour chaque cellule d'une plage

batteur_fou
|
il y a bien évolution, mais seulement du type d'erreur cette fois... Objet requis (erreur 424) Sub renvoie_couleur() Dim cou as boolean Dim pla_range as range Set plage = Worksheets("Feuille").Range(pla_range) coul couleur(plage) MsgBox coul End Sub _________________________________________ Function couleur(pla As Range) As Boolean Dim cel As Range
For Each cel In pla If cel.Interior.Color <> RGB(255, 255, 255) Then espace_necessaire = False Exit For Else espace_necessaire = True End If Next End Function
(je bosse avec vba Excel...)
Help please!!!
|
|
mercredi 21 novembre 2007 à 09:08:27 |
Re : Test pour chaque cellule d'une plage

jrivet
|
Réponse acceptée !
Salut, Si j'ai bien compris (au vue du code) ta fonction doit retourner False si l'intérieur d'une cellule n'est pas blanc . ce qui est bizarre c'est qu'il semblerait que tu dises l'inverse dans le premier post. Est ce que ceci pourrait convenir. Private Sub CommandButton1_Click() Range("A1:F10").Select MsgBox Renvoie_Couleur
End Sub
Private Function Renvoie_Couleur() As Boolean Dim c As Range Renvoie_Couleur = True For Each c In Selection If c.Interior.Color <> vbWhite Then Renvoie_Couleur = False Exit For End If Next End Function | | By Renfield | @+: Ju£i€n Pensez: Réponse acceptée
|
|
mercredi 21 novembre 2007 à 12:44:26 |
Re : Test pour chaque cellule d'une plage

batteur_fou
|
Merci, ca fonctionne maintenant! Oui il est possible que je fasse des erreurs parce que en fait ce n'est qu'une simplification que je donne pour qu'on puisse comprendre plus simplement ce que je veux et où je bloque...
|
|
mercredi 21 novembre 2007 à 22:11:06 |
Re : Test pour chaque cellule d'une plage

caco64
|
Ca n'a plus aucune importance puisque ton problème est résolu. Toutefois, le code que je t'avais envoyé fonctionne bien (en VBA). En revanche, dans le code que tu as renvoyé derrière, tu as des problèmes parce que tu refais l'erreur d'écrire : worksheets("Feuille").range(plage_range) plage_range étant un objet range, il n'est par définition pas possible de faire range(plage_range), ça n'a pas de sens. worksheets("Feuille").plage_range serait moins faux mais ça ne marchera pas non plus car un objet range renvoie des cellules associées à une feuille. Et si tu n'as pas l'impression d'avoir indiqué une feuille, par défaut ton objet range prend la feuille active. en clair c'est comme si tu écrivais : worksheets("Feuille").worksheets(feuille_active).range(les cellules) => problème. Voilà les modifications qu'il fallait faire dans ta procédure d'appel :
Sub renvoie_couleur() Dim coul As Boolean Dim plage_string As String Dim plage_range As Range
plage_string = "A2:D10" Set plage_range = Worksheets("Feuille").Range(plage_string) ' ou Set plage_range = Activesheet.Range(plage_string) coul = couleur(plage_range) MsgBox coul End Sub
Ces précisions ne te sont pas d'une grande utilité mais on ne sait jamais pour un autre code à l'avenir.
La haine aveugle n'est pas sourde
|
|
Cette discussion est classée dans : couleur, test, cellule, plage, pla
Répondre à ce message
Sujets en rapport avec ce message
Test sur la couleur d'une cellule excel [ par Drake59730 ]
Bonjour a tous!Voila, j'ai besoin pour un projet de contoler les cellules d'un calendrier excel via VB6. Le soucis majeur (mis a part le fait que je
[Déplacé VB6 --> VBA] EXCEL : recherche de la couleur d'une cellule dans une plage et n° ligne et colonne [ par Herve34600 ]
Bonjour, Je suis novice de VBA [^^sad1] et je souhaiterais avoir une fonction supplémentaire qui me permettrait d'utiliser la couleur d'une cellule p
mise en forme conditionnelle cellule excel [ par andlauer ]
Bonjour, je suis débutant en la matière et je cherche à faire une macro (je pense qu'il faut en passer par là) qui permette de changer la couleur de
manipuler les array [ par kraquotte ]
bonjour ! je débute en programmation et je souhaite faire une macro qui fasse les choses suivantes : 1-demander l'utilisateur de sélectionner une plag
mise en couleur d'une cellule [ par titeuf136 ]
Bonjour, je cherche à mettre en couleur une cellule, en reprenant la même couleur q'une autre cellule voici mon code (qui ne marche pas) [code=vb]Ce
Excel macro - Sélection d'une plage de cellule avec cell ? [ par 4toMik ]
Bonjour, Je cherche à sélectionner une plage de cellules avec la fonction [b]Cells[/b]. Par exemple reproduire [b]"Range ("A1:F2").Select"[/b] avec
Moteur de recherche [ par etust ]
Je réalise en ce moment un programme de base de données avec moteur de recherche. J'ai bien avancé jusqu'ici mais je bloque sur quelques points. Je s
comparaison cellule à une plage exel vb [ par pgillou ]
Bonjour le forum, Je cherche à appliquer ce code à une plage merci de votre aide: [b]If .Cells(Lig, Col).Value = Range("D121").Value Then [/b] N'hé
[Catégorie modifiée VBS --> VBA] Selection d'une plage dynamique [ par Mikmak47 ]
Bonjour, Dans une feuille de calcul Excel, j'ai un tableau qui en partant d'une cellule fixe (par exemple la cellule F75), doit avoir des coordonnées
incrémenter une formule si une plage de cellule n'est pas vide [ par gerardcjf ]
Bonjour à tous, je viens auprès de vous pour choper des idées en réponses à un problème .... Voilà mon problème, je voudrais que lorsqu'une ou plus
Livres en rapport
|
Derniers Blogs
GESTION D'EXCEPTION AVEC LES TASKSGESTION D'EXCEPTION AVEC LES TASKS par richardc
Nous avons vu dans un précédent article comment utiliser Task pour effectuer des opérations dans un autre thread.
Malheureusement, comme tout le monde n'est pas parfait, il se peut que cette exécution se passe mal et qu'une exception se produise.
La...
Cliquez pour lire la suite de l'article par richardc DéMARRONS AVEC LES TASKSDéMARRONS AVEC LES TASKS par richardc
Que vous le vouliez ou non, le développement multi-tâche est maintenant une obligation pour toute nouvelle application. Il est donc vital d'en comprendre les mécanismes et de s'y mettre le plus tôt possible.
En attendant le .NET Framework 4.5 avec le...
Cliquez pour lire la suite de l'article par richardc SLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPSSLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPS par Vko
Retrouvez les slides et les démo de ma session Fast & Furious XAML Apps. A ceux qui se posent la question : "est-ce que le code de la DataGrid est disponible?", je vous répondrais "pas encore". Je vais mettre en place un projet codeplex pour part...
Cliquez pour lire la suite de l'article par Vko XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|