Problème nom de cellule et programme

marjo59

XLDnaute Nouveau
Bonjour tout le monde,

Voila, je suis étudiante et comme projet on doit créer un programme sous excel en VBA. Pour précision, je n'ai pas de formation en math ni en informatique
En cours nous avons "appris" à utiliser le 2003, et ici je travaille en 2007, donc j'ai des soucis pour utiliser certaines fonctions, et j'ai quelques bug.

Sujet : Je dois calculer et dessiner le plus petit cercle circonscrit d'un polygone quelconque (enfin pas si quelconque puisqu'on l'a limité : pas de croisement... pour limiter les problèmes)

J'ai donc créé une "Public Sub Cercle_circons", avec un bouton qui fait appelle a ce programme.

Voici déjà quelques problèmes:
- Sur excel j'ai nommé des cellules pour afficher les résultats exemple : les coordonnées du centre du cercle, le rayon, la distance entre les deux points les plus éloignés... Mais dans certaines cellules rien ne s'affiche, comme si il ne prenait pas en compte le nom. Et pourtant j'ai vérifié, pas de faute, ....

- Au début du programme, il y a une partie qui permet si on a le même nombre de cellule en X et en Y. On ne sait jamais si quelqu'un oublié une cellule. Si le nombre de cellule de X et Y sont différents, il doit afficher un message d'erreur. Problème, si la cellule est vide, excel la considère comme égale à 0. Comment peut on faire pour qu'il ne le fasse pas?


If X.Cells.Count <> Y.Cells.Count Then
MsgBox ("Erreur, X et Y sont de taille différentes")
Else
n = X.Cells.Count


- Savez vous si c'est possible de faire une lecture en pas à pas d'une public sub? car je ne trouve pas et cela me permettrait de trouver les problèmes du programme.

Merci d'avance et passer de bonne fêtes
 

Pierrot93

XLDnaute Barbatruc
Re : Problème nom de cellule et programme

Bonjour Marjo
- Savez vous si c'est possible de faire une lecture en pas à pas d'une public sub? car je ne trouve pas et cela me permettrait de trouver les problèmes du programme.
Dans l'éditeur vba, utilisation de la touche F8.

Pour le reste peut être qu'un petit fichier nous aiderait à t'aider.

bon après midi et bonnes fêtes également.
@+
 

repcheks

XLDnaute Junior
Re : Problème nom de cellule et programme

Pour la lecture pas a pas il te faut aller dans l'editeur VBA, te placer en debut de procedure et presser F8, la premiere instruction est lue, etc.

Sinon j'imagine que X et Y sont des plages de données (Range), auquel cas:

Code:
dim c as range
dim xcount&, ycount&

For each c in x
if c.value<>"" then xcount=xcount+1
next c

for each c in y
if c.value<>"" then ycount=ycount+1
next c

If xcount <> ycount Then
MsgBox ("Erreur, X et Y sont de taille différentes")
Else
n = X.Cells.Count
End if
 

marjo59

XLDnaute Nouveau
Re : Problème nom de cellule et programme

Le problème, c'est que sur 2003, F8 fonctionne pour le pas a pas, mais pas en 2007. Il ne veut prendre que des Sub, et non des public sub.

X et Y font bien référence à un tableau de données ou l'on a les coordonnées des points.


Voici une partie du programme, car tant que les problèmes ne sont pas résolus sur cette partie, je ne pourrais pas écrire la suite.

Public Sub Cercle_circons(X As Range, Y As Range, xc As Double, yc As Double, rayon As Double)

Dim i, j As Integer 'Les compteurs
Dim imax As Integer 'Point de départ de la plus grande diagonale
Dim jmax As Integer 'Point d'arrivée de la plus grande diagonale
Dim d As Double 'Variable de calcul diagonale
Dim dmax As Double 'Longueur de la plus grande diagonale
Dim n As Integer 'Taille du tableau



If X.Cells.Count <> Y.Cells.Count Then
MsgBox ("Erreur, X et Y sont de taille différentes")
Else
n = X.Cells.Count


dmax = 0
For i = 1 To n
For j = 1 To n
d = Sqr((X(j) - X(i)) ^ 2 + (Y(j) - Y(i)) ^ 2) 'distance entre les points i et j
If d > dmax Then
dmax = d
xc = (X(i) + X(j)) / 2
yc = (Y(i) + Y(j)) / 2
rayon = d / 2
imax = i
jmax = j
End If
Next j
Next i
End If
End Sub


Quelqu'un sait pourquoi excel n'indique pas les valeurs de dmax et de rayon alors qu'il m'affiche celle de xc et yc. J'ai bien nommé les cellules,... alors je vois pas d'ou peut venir le problème.

Est ce que vous savez pourquoi lorsque j'enlève la ligne "dmax = d" xc et yc sont différents et faux (car vérifier à la main)?
 

marjo59

XLDnaute Nouveau
Re : Problème nom de cellule et programme

A quoi cela sert de créer un fichier zip, si cela ne réduit pas la taille. Je ne peux toujours pas le mettre sur le forum.

J'ai vraiment besoin d'aide pour mon problème excel, c'est urgent
 
Dernière édition:

marjo59

XLDnaute Nouveau
Re : Problème nom de cellule et programme

Tout d'abord bonne année à Tous!!!

Une petite demande particulière :
- Dans mon programme, j'ai mis quelques lignes pour vérifier si j'ai le meme nombre de cellule en X et en Y de rempli.

If X.Cells.Count <> Y.Cells.Count Then
MsgBox ("Erreur, X et Y sont de taille différentes")
Else
n = X.Cells.Count


problème, c'est que dans mon programme, je sélectionne la zone de cellule. Donc il ne dit jamais qu'il y a une erreur. Est il possible que le programme mette une erreur lorsqu'une des cellule est vide?
 

Discussions similaires

Réponses
8
Affichages
332
Réponses
10
Affichages
206

Statistiques des forums

Discussions
312 234
Messages
2 086 467
Membres
103 226
dernier inscrit
smail12