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 :

erreur 1004 méthode défault de l'objet range a échoué


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
    Étudiant
    Inscrit en
    Août 2015
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Août 2015
    Messages : 22
    Par défaut erreur 1004 méthode défault de l'objet range a échoué
    Bonjour à tous,

    J'ai un problème assez simple et apparemment récurrent mais je n'ai pas trouvé le solution sur internet..

    j'écris:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    sub test ()
     
    for i=1 to 10
    range(i:i).select
    next
     
    end sub
    et là apparait le fameux message d'erreur. J'avais déja vu ce message d'erreur et j'avais lu qu'il fallait rajouter ma_feuille.select et ca avait marché mais ici ca ne change rien..

    Voila, j'espère que quelqu'un pourra m'aider !

  2. #2
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Salut, l'utilité de la chose ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Option Explicit
     
    Sub Test()
    Dim i As Long
        For i = 1 To 10
            Feuil1.Range(i & ":" & i).Select
        Next i
    End Sub

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2015
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Août 2015
    Messages : 22
    Par défaut merci
    Merci pour votre réponse rapide!

    A la base je dois enlever les lignes d'un tableau à 4 colonnes où toutes les cases n'ont pas un contenu identique, j'ai simplifié le code pour exhiber le problème. Pourriez vous m'expliquer ce qui n'allait pas dans mon code?

    Pour reprendre ce que je veux faire, voila mon code:
    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
     
    Sub recadrage()
     Dim i As Long
     
    For i = 1 To 10
    compt = 1
         Sheets("table").Select
         While (Cells(i, compt) = Cells(i, compt + 1))
         compt = compt + 1
         Wend
     
           If (Not compt = 4) Then
          Feuil1.Range(i & ":" & i).Select
          Selection.Delete Shift:=xlUp
           i=i-1
          End If
    Next i
     
    End Sub
    mais le même message d'erreur 1004 apparait cette fois à la ligne "while(cells(i, ..." : la macro marche quand même mais le message apparait.

    nota: j'ai renommé ma feuille1 "table" mais le code marche avec feuil1.range n'est ce pas un peu bizarre?


    merci encore, je pense pouvoir continuer d'avancer dans tous les cas

  4. #4
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Salut, visiblement tu ne connais ce qu'est le CodeName, qui permet de déplacer/renommer les onglets sans toucher au code VBA.

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2015
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Août 2015
    Messages : 22
    Par défaut
    D'accord pour codename, mais pourriez vous m'expliquer l'histoire de l'erreur 1004? Sinon la prochaine fois je ne saurai toujours pas comment faire..

    Bonne journée,
    alebdeb

    Si quelqu'un lit ce message, j'ai toujours besoin d'aide.

  6. #6
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,
    mais le même message d'erreur 1004 apparait cette fois à la ligne "while(cells(i, ..." : la macro marche quand même mais le message apparait.

    Si on reprend cette partie de ton code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    compt = 1
    While (Cells(i, compt) = Cells(i, compt + 1))
         compt = compt + 1
    Wend
    on remarque que tu ne prévois aucune issue de secours dans ta boucle While/Wend

    cela signifie que "Tant qu'on a deux cellules contigües horizontalement qui sont identiques : on se décale"
    Autrement formulé : "Tant qu'on a pas deux cellules différentes, on se décalera"

    Le problème, c'est que si toutes les cellules de la ligne sont identiques (par exemple : une ligne vide !!) ... tu finis par dépasser la dernière colonne de ta feuille

    et je pense qu'on comprend ta jolie erreur 1004 ?

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

Discussions similaires

  1. [XL-2013] La méthode 'Value' de l'objet 'Range' a échoué
    Par pitwolvi dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 20/10/2014, 17h01
  2. Réponses: 12
    Dernier message: 07/05/2010, 16h48
  3. Erreur 1004, methode Paste de l'objet Range.
    Par asxasx dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 20/08/2007, 12h05
  4. ERREUR:la méthode open de l'objet recordset a échoué
    Par ashash dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 16/07/2007, 14h06
  5. Réponses: 13
    Dernier message: 29/06/2007, 19h03

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