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 d'exécution 91: Variable objet ou variable de bloc With non définie.


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2014
    Messages : 71
    Par défaut Erreur d'exécution 91: Variable objet ou variable de bloc With non définie.
    Bonjour,

    suite à une aide afin de faire cette macro( ce matin sur le forum), j'ai voulu intégrer des éléments supplémentaires. J'ai le message d'erreur 91. Mon progrtame s'arrete sur la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    col = Rows("4:4").Find(What:="12 mois glissants finissant en").column
    Tout fonctionnait très bien avant...


    Voici le code en intégrale :

    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
    31
    32
    33
    34
    35
    36
    Sub ajout_colonne_TD_CD_TP()
     
     
     Dim col As Integer
     Dim Cancel As Boolean
    Dim x As String
     
     
     
    'Dim derligne As Integer
     
         'derligne = Range("A" & Rows.Count).End(xlUp).Row ' on va chercher la derniere ligne utilisée de la colonne A sur l'instance en paramètre.
     
     
         col = Rows("4:4").Find(What:="12 mois glissants finissant en").column
     
        If MsgBox("Voulez-vous ajouter une colonne supplémentaire?", vbQuestion + vbYesNo) <> vbYes Then
        Cancel = True
     
        Else
        columns(col).Select
        Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
     
        Cells(1, col).Value = col
        End If
     
        x = InputBox("Veuillez ajouter une date svp.")
        'Cells(col & 3).Select
     
        Cells(3 & col).Value = x
        'Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
        Range(col, 3).ActiveCell.FormulaR1C1 = x
     
     
     
        End Sub
    Je voulais ajouter une date dans la 3 eme ligne après la demande de l'inputbox et c'est en essayant tout ca que j'ai eu ce message.
    Du coup il m'est impossible de continuer et je ne comprends pas cette erreur.

    Je vous remercie d'avance pour me donner de votre temps,


    Cordialement

  2. #2
    Membre Expert Avatar de antonysansh
    Homme Profil pro
    Chargé d'études RH
    Inscrit en
    Mai 2014
    Messages
    1 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé d'études RH
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2014
    Messages : 1 115
    Par défaut
    RE Mehdi8793,

    Ce code devrait régler ton probléme :

    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
    Sub ajout_colonne_TD_CD_TP()
     
        Dim col As Integer
        Dim Cancel As Boolean
        Dim x As String
     
        col = ThisWorkbook.Sheets("Feuil1").Rows("4:4").Find(What:="12 mois glissants finissant en").Column - 1
     
        If MsgBox("Voulez-vous ajouter une colonne supplémentaire?", vbQuestion + vbYesNo) <> vbYes Then
            Cancel = True
        Else
            Columns(col).Insert Shift:=xlToRight
            Cells(1, col).Value = col
        End If
     
        x = InputBox("Veuillez ajouter une date svp.")
     
        ThisWorkbook.Sheets("Feuil1").Cells(3, col).Value = x
     
    End Sub
    Antony

  3. #3
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Bonjour,

    Essaie comme ceci
    J'ai mis xlPart si le texte peut comprendre plus mots. Ça pourrait être xlWhole si le texte contient exactement ce que tu as mis entre guillemets.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Dim Rng as Range
    Set Rng = Rows(4).Find("12 mois glissants finissant en", LookIn:=xlValues, LookAt:=xlPart)
    If not Rng Is Nothing Then
       col = Rng.Column
    Else
       MsgBox "Non trouvé"
       Exit Sub
    end If

  4. #4
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2014
    Messages : 71
    Par défaut
    Merci antony cela fonctionne, merci parmi pour ce petit test qui m'aide aussi. Mon probème est résolu j'ai adapté. Vous savez d'ou cela venait? Pourquoi as-tu rajouté ThisWorkbook.Sheets?


    Cordialement et encore merci

  5. #5
    Membre Expert Avatar de antonysansh
    Homme Profil pro
    Chargé d'études RH
    Inscrit en
    Mai 2014
    Messages
    1 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé d'études RH
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2014
    Messages : 1 115
    Par défaut
    Il est important et plus clair pour ta relecture et celle des autres qui veulent t'aider de préciser d'ou viennent tes objets. Pour un objet plage de cellule (Range), elle se trouve sur une feuille (sheet) et dans un classeur, ici celui actif (ThisWorkbook).

    Antony

  6. #6
    Invité
    Invité(e)
    Par défaut
    Salut,

    Il faudrait combiner l'apport de parmi et de antonysansh pour bien faire.
    Préciser les Parents du Range te permet de ne pas dépendre de la feuille active et du classeur actif, et aussi, vérifier que la fonction Find renvoi bien autre chose que Nothing est important d'où le code de parmi qui sépare le .Column de la fonction Range sur 2 lignes séparées.


    --------------
    EDIT:
    Nota: Si le code est dans un module object Feuil par contre, il n'y a pas besoin de spécifier le parent de Rows.
    Dernière modification par Invité ; 23/02/2015 à 17h32.

  7. #7
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2014
    Messages : 71
    Par défaut
    Merci pour toute ces réponse je vois plus claire maintenant.


    Cordialement

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

Discussions similaires

  1. [XL-2013] erreur d'exécution 91 variable objet ou variable de bloc with non définie
    Par tmlpqsdpmdlc dans le forum Macros et VBA Excel
    Réponses: 18
    Dernier message: 08/06/2015, 13h25
  2. Réponses: 4
    Dernier message: 24/05/2014, 19h24
  3. Erreur 91 : variable objet ou variable de bloc with non définie
    Par blobsam dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/08/2011, 17h19
  4. [XL-2007] Message d'erreur : Variable objet ou Variable de bloc With non définie
    Par toushusss dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 14/06/2011, 10h02
  5. erreur 91 variable objet ou variable de bloc with non définie
    Par ballantine's dans le forum Macros et VBA Excel
    Réponses: 24
    Dernier message: 03/12/2009, 16h41

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