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 :

[VBA-E]Erreur lors d'une copie de cellules


Sujet :

Macros et VBA Excel

  1. #1
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 342
    Points : 4 299
    Points
    4 299
    Par défaut [VBA-E]Erreur lors d'une copie de cellules
    Bonjour,


    j'ai un pitit soucis ça fait 3heures qu eje suis sur le problème et je vois aps trop d'ou y vient

    Voila en fait j'ai dans une feuille Excel plusieurs lignes et ces lignes sont en fait découpées par des lignes vides et donc découpées, si on peut dire en plage de cellules qu'il faut alors coller dans une autre feuille

    Pour cela j'ai créé cette fonction pour trouver la ligne vide :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Function ligne_vide(nomF As String, debut As Integer) As Integer
    'fonction qui renvoie le numero de la ligne vide
    Dim f As Worksheet
    Set f = Worksheets(nomF)
    Dim k As Long
    Dim w As Long
    k = debut
    w = debut
    While f.Cells(w, 2).Value <> ""
        k = k + 1
        w = w + 1
    Wend
    ligne_vide = k
    End Function
    Cette fonction renvoie donc un entier qui dit ou est la ligne suivante en lui indiquant d'ou on commence

    Ensuite j'ai fait cette fonction, qui permet (normalement de "sélectionner" une plage) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Function plage_cellules(nomF As String, nombre_colonnes As Integer, debut_ligne As Integer) As Range
    Dim f As Worksheet
    Dim P As Range
    Set f = Worksheets(nomF)
    MsgBox (ligne_vide(nomF, debut_ligne))
    Set P = f.Range(Cells(debut_ligne, 1), Cells(ligne_vide(nomF, debut_ligne), nombre_colonnes))
    plage_cellules = P
    End Function
    Donc ensuite je fais une procédure de test pour voir si ces fonctions fonctionnent :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub test()
    Application.Sheets.Add.Name = "test"
    Application.ActiveSheet.Move after:=Sheets("base")
    Dim f2 As Worksheet
    Set f2 = Worksheets("test")
    f2.Range("A1").Value = plage_cellules("base", 4, 8).Value
    End Sub
    Donc comme vous le voyez ici, je créé donc une feuille appelée "test", je la met après l'autre feuille, puis je voudrais copier la plage de cellules dans cette nouvelle feuille

    Mais lors de l'écution de cette macro, j'ai une erreur pendant l'éxécution de la fonction au dessus, qui "sélectionne" une plage de cellule :
    J'ai erreur d'exécution '1004': la methode 'range' de l'objet "worksheet" a échoué

    Est-ce que quelqu'un sait d'ou vient cette erreur ? :o parce que j'ai beau me trifougner la tete la je trouve pas

    Merci beaucoup pour votre aide, en espérant avoir été assez clair dans mes explications

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 46
    Points : 55
    Points
    55
    Par défaut
    Juste une idée comme ça je ne connais pas bien le VBA mais si tu passait directement ton WorkSheet : Base, à ta fonction plage_cellules au lieu de son nom :

    Ca ne serait pas plus simple et moins risqué :

  3. #3
    Membre actif
    Avatar de repié
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    335
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 335
    Points : 281
    Points
    281
    Par défaut
    L'erreur est signalée sur quelle ligne de ton code?

  4. #4
    Expert éminent
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Points : 7 962
    Points
    7 962
    Par défaut
    c'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Set P = f.Range(f.Cells(debut_ligne, 1), f.Cells(ligne_vide(nomF, debut_ligne), nombre_colonnes))
    Set plage_cellules = P

  5. #5
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 342
    Points : 4 299
    Points
    4 299
    Par défaut
    Oui c'est ça bidou

    En fait je revenais pour dire que j'avais trouvé j'ai trop fait la burne sur ce coup j'vous jure des fois le matin c'est dur


    Merci en tout cas

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

Discussions similaires

  1. [XL-2003] Problème lors d'une copie de cellules visibles après un filtre
    Par As.Plate dans le forum Excel
    Réponses: 4
    Dernier message: 12/08/2014, 15h53
  2. {VBA Excel}Erreur lors d'une copie
    Par Thomas69 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 14/08/2007, 09h57
  3. Réponses: 8
    Dernier message: 01/08/2007, 12h06
  4. [VBA-E] erreur de code sur copie de cellules
    Par dado91400 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 17/03/2007, 23h12
  5. [VBA-E]Erreur lors de la copy d'une feuille
    Par nattyman dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 07/08/2006, 14h30

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