IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

excel visual basic erreur


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Novembre 2012
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2012
    Messages : 50
    Par défaut excel visual basic erreur
    bonjour
    j'ai une macro vba qui fonctionne très bien pour copier une cellule d'un premier fichier xlsx dans un second
    Le code utilisé est le suivant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    Sub CopierDonnees()
     
    Dim Entree As Workbook, Sortie As Workbook
     
    Nomfichierentree = Application.GetOpenFilename("Fichier Excel (*.xlsx), *.xsl")
     
    If Nomfichierentree <> False Then
     
        Set Entree = Workbooks.Open(Nomfichierentree)
     
     
        NomFichierSortie = Application.GetOpenFilename("Fichier Excel (*.xlsx), *.xsl")
        If NomFichierSortie <> False Then
            Set Sortie = Workbooks.Open(NomFichierSortie)
     
     
            Sortie.Worksheets("Feuil1").Cells(11, 7) = Entree.Worksheets("Feuil1").Cells(11, 7)
            Sortie.Worksheets("Feuil1").Cells(51, 11) = Entree.Worksheets("Feuil1").Cells(51, 11)
     
     
            Sortie.Close
     
     
        End If
     
        Entree.Close
    End If
     
    End Sub
    par contre si j'essaie cette opération sur deux fichiers dont on m'as demandé d'effectuer la même opération, j'obtiens l'erreur 9....l'indice n'appartient pas a la selection
    Nom : file1.JPG
Affichages : 159
Taille : 45,3 KoNom : file2.JPG
Affichages : 139
Taille : 75,0 Ko

  2. #2
    Membre expérimenté
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2018
    Messages
    254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2018
    Messages : 254
    Par défaut
    Bonjour,

    Tu dois avoir un problème au niveau de la dénomination, soit du/des classeurs, soit d'une feuille.

    Vérifies que les noms des feuilles de tes deux nouveaux fichiers se nomment bien "Feuil1".

  3. #3
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 478
    Par défaut
    Bonjour,

    remplaces :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
            Sortie.Worksheets("Feuil1").Cells(11, 7) = Entree.Worksheets("Feuil1").Cells(11, 7)
            Sortie.Worksheets("Feuil1").Cells(51, 11) = Entree.Worksheets("Feuil1").Cells(51, 11)
    Par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
            Sortie.Worksheets(1).Cells(11, 7) = Entree.Worksheets(1).Cells(11, 7)
            Sortie.Worksheets(1).Cells(51, 11) = Entree.Worksheets(l).Cells(51, 11)

  4. #4
    Membre averti
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Novembre 2012
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2012
    Messages : 50
    Par défaut
    ca a l'air d'être ca..

  5. #5
    Membre averti
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Novembre 2012
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2012
    Messages : 50
    Par défaut
    merci

  6. #6
    Membre averti
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Novembre 2012
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2012
    Messages : 50
    Par défaut
    j'ai encore un souci avec visual basic..
    J'essaie de tester le cas ou les numéros d'etude du premier fichier et du deuxieme sont identiques
    j'arrive bien a afficher les msgbox avec le numéro d'étude mais le test If fonctionne pas..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    MsgBox Entree.Worksheets(1).Cells(11, 1)
    MsgBox Sortie.Worksheets(1).Cells(51, 1)
    If Entree.Worksheets(1).Cells(11, 1) = Sortie.Worksheets(1).Cells(51, 1) Then
    MsgBox "ok"
    End If

  7. #7
    Membre expérimenté
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2018
    Messages
    254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2018
    Messages : 254
    Par défaut
    Bonjour,

    Essaye ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    MsgBox Entree.Worksheets(1).Cells(11, 1)
    MsgBox Sortie.Worksheets(1).Cells(51, 1)
    If cstr(Entree.Worksheets(1).Cells(11, 1)) = cstr(Sortie.Worksheets(1).Cells(51, 1)) Then
    MsgBox "ok"
    End If
    Cstr transforme la valeur de ta cellule en texte.

    En espérant que ce soit ça

  8. #8
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 478
    Par défaut
    Citation Envoyé par peterpan3000 Voir le message
    j'ai encore un souci avec visual basic..
    J'essaie de tester le cas ou les numéros d'etude du premier fichier et du deuxieme sont identiques
    j'arrive bien a afficher les msgbox avec le numéro d'étude mais le test If fonctionne pas..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    MsgBox Entree.Worksheets(1).Cells(11, 1)
    MsgBox Sortie.Worksheets(1).Cells(51, 1)
    If Entree.Worksheets(1).Cells(11, 1) = Sortie.Worksheets(1).Cells(51, 1) Then
    MsgBox "ok"
    End If
    Si le test ne renvoie pas Ok, c'est que les valeurs ne sont pas rigoureusement identiques, comme le suggère Tristan, elles ne sont pas du même type (un nombre et un texte).
    Donc attention, pour éviter tout problème ultérieur, il faut y remedier en remplaçant la mauvaise valeur par la bonne (toi seul sait laquelle il faut utiliser).

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Visual basic Erreur 3075
    Par damdam91 dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 20/06/2013, 13h21
  2. [XL-2003] Excel (Visual Basic) => Outlook (Copier/Coller dans Mail)
    Par Marounda dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/12/2010, 18h52
  3. Réponses: 24
    Dernier message: 13/01/2010, 11h44
  4. Visual Basic erreur d'exécution 13
    Par KuBi4K dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 03/06/2009, 17h14
  5. Excel visual basic
    Par kedas dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 16/06/2007, 17h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo