Petit Problème ... Erreur 9

Salut tout le monde,

Je suis un utilisateur d'Excel qui débute complètement. Pour la petite histoire j'ai toujours eu peur d'Excel, alors que j'ai pour habitude de programmer en beaucoup de langage (Java, C++, VB.net) ... Mais depuis que j'utilise Excel pour de petit traitements, eh bien ma curiosité est montée d'un cran !

Mais je débute !

Je voudrais faciliter un travail fastidieux de traitement que je dois faire sur Excel en créant une macro. Bon c'est du VB donc je comprend la mentalité et la syntaxe du langage mais j'ai un problème. J'ai repris une macro que j'ai trouvé sur le site de microsoft. Je veux que ma macro recherche les similitudes entre une colonne de mon Worksheet et une colonne d'une Worksheet d'un autre classeur, et me les écrit dans la liste, à la même ligne que la vellule qui fait l'objet de cette similitude (C'est ce que fait la macro que j'ai prise, mais je compte bien sûr la modifier car mon traitement est légèrement différent sans forcément être trop dur).

Mais voilà quand je cherche à faire fonctionner cette macro sur un fichier excel bidon, elle marche au boulot, et lorsque je rentre chez moi elle ne marche plus, on m'affiche l'erreur 9 ("l'indice n'appartient pas à la sélection") ... Etant débutant et assez pressé par le temps je voulais simplement vous appeler au secours

Je suis sûr que c'est une erreur de débutant en informatique, donc je m'excuse si c'est le cas car je vous ferait perdre votre temps ...

Sub Find_Matches()

Dim CompareRange As Variant, x As Variant, y As Variant

Set CompareRange = Workbooks("OUTPUT").Worksheets("Feuil1").Range("A1:A10")

For Each x In Selection
        For Each y In CompareRange
            If x = y Then x.Offset(0, 1) = x
        Next y
Next x

End Sub

Voici le code, je m'en remet à vous ...

Merci d'avance et bon après-midi !

PS : "OUTPUT" est le fichier où je cherche mes valeurs comme vous pouvez le constater, le fichier est placé dans le même dossier.

For Each x In Selection

peut etre Application.Selection

Bonjour,

À tout hasard, tu as les mêmes versions au boulot et chez toi ? Quelle est la hauteur de la plage concernée ?

Salut et merci de vos réponse,

J'ai simplement crée un fichier INPUT avec 10 valeurs dans une colonne. Puis un fichier OUTPUT avec 10 valeurs dans la colonne A, dont certaines sont les mêmes que celle du fichier INPUT. Les deux fichiers sont dans le même répertoire...

Pour le changement en "Application.Selection", j'ai essayé sans succès

Merci d'avance.

PS : Au boulot j'ai la version 2013 sur Windows 8, et là la version 2010 sur Windows 7. Le problème viendrait-il de là ?

Bonsoir,

peut-être :

Workbooks("OUTPUT.xls")

ou .xlsm, ou xlsx, bref avec la terminaison....

ensuite, vaut mieux déclarer tes variables en Range, vu que tu travailles sur des cellules...

Bon courage

Salut,

Concernant l'extension, cela ne résous pas le problème malheureusement

J'ai beau changé la nature de la variable, cela ne change pas non-plus .... En fait je ne connaît pas trop le principe de la macro, ou plutôt le contexte dans lequel on appelle la macro. Dans mon cas, il faut que je lui donne ma colonne pour effectuer la comparaison non ?

Merci d'avance.

Re-,

Je te confirme, comme ceci, cela fonctionne.

Attention, il faut que le classeur actif soit le classeur INPUT.xls...

Sub Find_Matches()

Dim CompareRange As Range, x As Range, y As Range

Set CompareRange = Workbooks("OUTPUT.xls").Worksheets("Feuil1").Range("A1:A10")

For Each x In Range("A1:A10")
    If CompareRange.Range("A" & x.Row) = x Then x.Offset(0, 1) = x
Next x

End Sub

Bon courage

Salut,

Je te remercie de ta réponse mais toujours la même erreur chez moi je ne comprend pas ...

Pourtant le classeur INPUT est bien le classeur actif ! Je ne comprend pas ...

Bonjour,

Attention aux fautes dans les noms de classeur et/ou de feuilles....

Vérifie bien l'écriture OUTPUT.xlsx, Sheets("Feuil1"), ....

tu peux joindre tes 2 fichiers "exemple", pour qu'on voit?

@ te relire

Oui l'orthographe des fichiers, et feuilles est la même

Les fichiers sont joints (Si c'est erreur bête je vous prie de m'excuser car je débute COMPLÈTEMENT sur Excel ... )

Merci d'avance.

4input.xlsm (11.50 Ko)
4output.xlsx (8.46 Ko)

Re-,

Relis bien ce que j'avais mis au post 5 :

peut-être :

Code: Tout sélectionner

Workbooks("OUTPUT.xls")

ou .xlsm, ou xlsx, bref avec la terminaison....

Surtout la dernière phrase....

Ton fichier, c'est OUTPUT.xlsx et non .xls

bonne soirée

Eh bien ça marche !!

Merci beaucoup et désolé pour cette faute d'inattention

J'ai pu adapter le code de base à ce que je voulais très facilement du coup, merci beaucoup de votre aide, vous gérez beaucoup !

J'ai très envie d'en apprendre un maximum sur Excel maintenant, alors je resterais dans les parages un bon bout de temps

Merci cousinhub et les autres pour vos réponses !

Rechercher des sujets similaires à "petit probleme erreur"