Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
Vieux 03/02/2010, 16h08   #1 (permalink)
Invité régulier
 
Date d'inscription: avril 2009
Messages: 16
Par défaut erreur dans une macro

Bonjour,

je débute en création de macros et j'ai un problème avec ma première macro.

J'essaye de comptabiliser le nombre de noms en gras et le nombre total de cellules renseignées.

Voici la macro que j'ai écrite :

Code :
 
Sub Taux_reponse()
    Dim Cel As Range, Nbreetudiants As Integer, compteur As Integer, taux As Single
 
    compteur = 0
    For Each Cel In ActiveSheet.Range("A2:A9")
       If Cel.Font.Bold = True Then
       compteur = compteur + 1
       End If
    Next
    
    Nombreetudiants = 0
    For Each Cel In ActiveSheet.Range("A2:A9")
        If Cel.Offset(Nombreetudiants) <> "" Then
        Nombreetudiants = Nombreetudiants + 1
        End If
    Next
    taux = (compteur * 100) / Nombreetudiants
    MsgBox " le taux de réponse est : " & taux & " %"
End Sub
 
Quand je teste ma macro sur une colonne comprtant huit lignes dont 3 noms en gras, Excel me renvoie le bon nombre de noms en gras mais toujours le résultat "4" pour Nombreetudiants.

Est-ce quelqu'un pourrait m'indiquer quelle erreur j'ai commise ?

merci d'avance.

Dernière modification par chrisbdx ; 03/02/2010 à 16h20.
chrisbdx est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 03/02/2010, 16h28   #2 (permalink)
Membre Expert
 
Date d'inscription: juillet 2008
Messages: 1 234
Par défaut

Code :
If Cel.Offset(Nombreetudiants) <> "" Then
si les réponses des étudiant se trouve en colonne B
il fallait mettre
Code :
If Cel.Offset(0,1) <> "" Then
 
__________________
Cordialement.
mercatog est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 03/02/2010, 16h31   #3 (permalink)
Invité régulier
 
Date d'inscription: avril 2009
Messages: 16
Par défaut

Non en fait tout se passe dans une colonne qui contient une liste de noms. Je veux tout simplement récupérer le nombre de lignes. Peut-être me suis-je compliqué la tâche...
chrisbdx est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 03/02/2010, 16h39   #4 (permalink)
Membre Expert
 
Date d'inscription: juillet 2008
Messages: 1 234
Par défaut

élimine ta 2ème boucle et fais
Code :
Nombreetudiants=application.worksheetfunction.counta(range("A9:A29"))
bien sur si tu as des cases vides entre le A9 et le A29

sinon tu as 21 étudiants
__________________
Cordialement.
mercatog est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 03/02/2010, 16h43   #5 (permalink)
Invité régulier
 
Date d'inscription: avril 2009
Messages: 16
Par défaut

Merci beaucoup, avec cette instruction cela fonctionne correctement.
Mais je n'ai quand même pas compris pourquoi c'était faux...
chrisbdx est déconnecté   Envoyer un message privé Réponse avec citation
NEWS EXCELF.A.Q EXCELTUTORIELS EXCELSOURCES EXCELOUTILS EXCELLIVRES EXCELOFFICE 2010

Réponse Proposer ce sujet en actualité

Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel



Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non



Fuseau horaire GMT +1. Il est actuellement 04h33.


Vos questions techniques : forum d'entraide Excel - Publiez vos articles, tutoriels et cours
et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones
Nous contacter - Hébergement - Participez - Copyright © 2000-2010 www.developpez.com - Legal informations.