Aller au contenu
  • Pas encore inscrit ?

    Pourquoi ne pas vous inscrire ? C'est simple, rapide et gratuit.
    Pour en savoir plus, lisez Les avantages de l'inscription... et la Charte de Zébulon.
    De plus, les messages que vous postez en tant qu'invité restent invisibles tant qu'un modérateur ne les a pas validés. Inscrivez-vous, ce sera un gain de temps pour tout le monde, vous, les helpeurs et les modérateurs ! :wink:

Tite question en VBA XL


Ayoros
 Partager

Messages recommandés

bonjour à tous,

 

Voilà, je me posais une ptite question, sans grand intérêt d'ailleurs, mais qui me turlupine bien.

 

Par exemple, dans notre macro, on veut comparer des lignes d'un tableau sous excel, vérifier qu'il n'y a aucun doublons par exemple (nan, nan exemple au hasard, jvous jure... :P )

 

j'ai pensé à plusieurs solutions mais toutes me semblent un peu lourdes surtout que mon code risque de devenir indigeste :

 

1/ je prends ma ligne et je compare cellule par cellule avec toutes les autres lignes (forcément à chaque ligne ça fait une comparaison en moins, mais ça fait pas mal quand même)

2/ je fabrique autant de tableau que de ligne et je compare chaque case de tableau (équivalent nan ?)

 

parceque j'ai bien l'impression qu'on ne peut pas comparer deux lignes telles quelles, j'ai essayé de bidouiller des lignes.select, mais rien à faire. Je me doute bien que si on pouvait comparer ligne à ligne directement ça devrait revenir au même en termes de ressources utilisées, mais bon, ce serait quand même moins lourd que du cellule par cellule...:P

 

En vous remerciant d'avance de vos idées,

 

Ayoros.

Lien vers le commentaire
Partager sur d’autres sites

Salut,

 

Eh pour moi le meilleur moyen de virer des doublons est de trier la liste par odre alphabetique

puis de verifier puis de verifier si l'item du dessus n'est pas le meme que celui sur lequel on est...

 

genre:

For i = 1 to CelCount -1

If cel(1, i).Value = cel(1, i+1).Value then ...

Next i

Ce code ne marche pas c'est juste un expemple....

 

++

Lien vers le commentaire
Partager sur d’autres sites

Ah oui, classer par odre alphabétique évite de tout comparer deux à deux... cool!

merci seb !

 

Sinon, j'en profite j'ai une autre petite question imaginons ce bout de code :

 for i = 0 to n
		 if MaCondition=True then
			  MsgBox"Je suis trop content"
			  Exit for
		 end if
	  next

 

je voudrais sortir de ma boucle for si MaCondition est vraie, mais j'arrive pas à le tester, et mon code ne donnant pas satisfaction, je me demandais si mon exit for faisait bien ce que j'attendais...C'est à dire s'il me sort bien de la boucle for, parce que je suis sur qu'on peut sortir de la boucle dans laquelle on est, mais est-ce que ça marche si il y a imbrication ?

 

Sinon, faudrait faire un truc du genre GoTo là où je veux nan?

 

en vous remerciant d'avance pour vos lumières,

 

Ayoros.

Lien vers le commentaire
Partager sur d’autres sites

Ben finalement, j'avais fait une erreur ailleurs !

donc le Exit For permet bien de sortir de la boucle for.

 

Sinon Kewlcat, (tout d'abord merci de ta réponse) pourquoi tu parles de "mauvaises habitudes" pour les GoTo ? j'en utilise pas, mais si je dois y être confronté je voudrais bien connaître les tenants et aboutissants!!!

 

PS : pour les break et continue, je connais pas du tout. J'ai eu des cours sous VB.Net et je me suis mis à VBA Excel pour mes stages.

Modifié par Ayoros
Lien vers le commentaire
Partager sur d’autres sites

Salut a tous,

 

Yep en vb6 on utilise exit pour sortir des boucle

Exit For, Exit Do

Ainsi que exit Function et Exit Sub

 

Pour ta boucle, elle est correcte au niveau syntaxe mais elle est incoherente car ici MaCondition garde la meme valeur

donc soit elle est True et tu sors de la boucle au premier tour soit elle est False et tu va faire toute la boucle sans passer par ta msgbox

(A savoir qu'un Boolean est a False par defaut...)

 

++

Lien vers le commentaire
Partager sur d’autres sites

salut seb,

 

le bout de code c'était juste un exemple !! en fait je voulais savoir si je pouvais sortir de la boucle for alors que j'étais imbriqué dans une boucle if...

 

en tout cas, merci bien.

 

@ la prochaine, (je suis sur que je trouverai quelquechose, en ce moment je m'enerve sur le fait de selectionner des plages de données en jonglant entre plusieurs onglets... je vais devenir fou !!! :P:P )

Lien vers le commentaire
Partager sur d’autres sites

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.
Remarque : votre message nécessitera l’approbation d’un modérateur avant de pouvoir être visible.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

 Partager

  • En ligne récemment   0 membre est en ligne

    • Aucun utilisateur enregistré regarde cette page.
×
×
  • Créer...