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 :

copie d'une plage de cellules : subscript out of range


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 354
    Par défaut copie d'une plage de cellules : subscript out of range
    Bonjour,

    ça fait depuis ce matin que j'essaie de copier une plage de cellule d'un fichier à un autre, je n'y arrive pas. Voici le code que j'utilise et j'ai un message : "error runtime 9 subscript out of range".
    Si quelq'un peut m'aider, merci d'avance.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
            For i = 1 To DerniereLigne
     
    Application.Workbooks(" & nom & .xlsx").Worksheets("Feuil1").Range("A & i & : I & i & ").Value = _
    Application.Workbooks(" & nom & .xls").Worksheets("Feuil1").Range("A & i & :I & i & ").Value
     
             Next
    Là je ne sias plus que faire . Merci

  2. #2
    Membre éclairé
    Inscrit en
    Octobre 2008
    Messages
    240
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 240
    Par défaut
    Bonjour,

    Essaie

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Workbooks(" & nom & ".xlsx").Worksheets("Feuil1").Range("A1:I "& DerniereLigne).copy Destination:=Workbooks(" & nom & ".xls").Worksheets("Feuil1").Range("A1")
    pour voir...

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    S'agissant d'une boucle, je pense plutôt à :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    For i = 1 To DerniereLigne
               
    Application.Workbooks(nom & ".xlsx").Worksheets("Feuil1").Range("A" & i & ": I" & i).Value = _
    Application.Workbooks(nom & ".xls").Worksheets("Feuil1").Range("A" & i & ":I" & i).Value
     
             Next

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 354
    Par défaut
    Merci d'avoir répondu,
    J'ai tapé ton code en retirant deux " qui ne passaient pas à la compilation, mais j'ai toujours le même message d'erreur : "Runtime error 9 subscript out of range"

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bizarre, car chez moi cela fonctionne.

    Mais il n'y a pas que deux " à supprimer et il y en a à ajouter.

    Une variable peut être précédée ou suivie de & mais jamais de ".

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 354
    Par défaut
    Merci Jacques Jean ainsi que toi Neiluj26, le deuxième code passe parfaitement et dire que j'y ai passé la matinée.
    Par contre,si je veux insérer les donneés dans le fichier xlsx sans écrasez le reste. Suis je obligé de faire des inserts de ligne avant de copier ou y a t il une méthode plus simple.

    Merci

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 354
    Par défaut
    J'ai l'impression qu'il ya un petit décalage dans nos messages. Ton code fonctionne parfaitement.
    Et maintenant, je me demandais si simplement, on pouvait faire la copie sur la premiere ligne du fichier xlsx sans écraser les données dejà existants, ceux ci descendraient.

    Ma question était peut être mal posé :
    LE code précédent écrase mes données.
    Comment faire pour qu'il se copie sans écraser les données existantes.

    Merci

  8. #8
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Vous voulez dire que votre Feuil2 contient déjà des données ?

    Si c'est le cas, il faut deux variables "DernièreLigne", je vais les nommer Dl1 pour la Feuil1 et Dl2 pour la Feuil2 (c'est plus court).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    For i = 1 To Dl1
    Application.Workbooks(nom & ".xlsx").Worksheets("Feuil2").Range("A" & Dl2 +1 & ": I" & Dl2 + 1).Value = _
    Application.Workbooks(nom & ".xls").Worksheets("Feuil1").Range("A" & i & ":I" & i).Value
     
    Dl2 = Dl2 + 1
             Next
    Sinon, précisez.

    Encore une erreur que j'ai rectifiée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Range("A" & Dl2 + 1 & ": I" & Dl2 + 1).Value =
    
    J'avais oublié le + 1 en rouge.
    Dernière modification par AlainTech ; 28/08/2010 à 15h01. Motif: Fusion de 2 messages

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

Discussions similaires

  1. Problème de copie d'une plage de cellules avec case à cocher
    Par sab_info dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 03/05/2013, 14h32
  2. Réponses: 4
    Dernier message: 20/04/2012, 20h49
  3. faire une copie d'une plage de cellules sur x feuilles
    Par La Zélie dans le forum Excel
    Réponses: 4
    Dernier message: 11/06/2008, 08h55
  4. Copie d'une plage de cellules
    Par Jeanvaljean44 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 21/01/2008, 17h46
  5. Problème de copie d'une plage de cellule
    Par Boonichou dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 03/08/2007, 17h31

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