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 :

Problème prise en compte with / end with [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    241
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2012
    Messages : 241
    Par défaut Problème prise en compte with / end with
    Bonjour à tous,

    J’ai un petit problème sur mon code 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
    Sub estimé()
     
     Dim colonne As Integer
     Dim ligne As Integer
     
     
     
        colonne = InputBox("quel colonne ?", "Titre") 'La variable reçoit la valeur entrée dans l'InputBox
        ligne = InputBox("quel ligne ?", "Titre") 'La variable reçoit la valeur entrée dans l'InputBox
     
     
    With Worksheets("Feuil2")
     
     
    For i = colonne To 18
     
        Cells(ligne, i).Formula = _
            "=INDEX(" & .Cells(3, 1).Address(False, False) & ":" & Cells(29, 16).Address(False, False) & _
            ",MATCH(" & Cells(7, 2).Address(False, False) & "," & .Cells(3, 1).Address(False, False) & ":" & Cells(29, 1).Address(False, False) & ",0),3)"
     
     
    Next i
     
     
    End With
     
     
    End Sub
    En effet j’aimerai qu’il me renvoi la formule suivante :

    =INDEX(Feuil2!A3: P29;EQUIV(Feuil1!B7;Feuil2!A3:A29;0);3)
    Mais il me renvoi la formule suivante :

    =INDEX(A3: P29;EQUIV(B7;A3:A29;0);3)
    Il ne prend pas en compte le with end with et je ne sais pas pourquoi.

    Merci à tous pour votre aide.

  2. #2
    Membre chevronné
    Homme Profil pro
    Ingénieur Industrialisation
    Inscrit en
    Mai 2015
    Messages
    222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur Industrialisation
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2015
    Messages : 222
    Par défaut
    Salut à toi, je pense qu'il te faut spécifier le nom de la feuille car .Address te donne juste l'adresse locale à l'intérieur de la feuille...
    Désolé pas le temps de l'écrire !

  3. #3
    Membre éclairé
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    241
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2012
    Messages : 241
    Par défaut
    Le préciser à quel moment ? Je pensais que With End With suffirait...

  4. #4
    Membre éprouvé
    Homme Profil pro
    Consultant comptable
    Inscrit en
    Mai 2011
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant comptable

    Informations forums :
    Inscription : Mai 2011
    Messages : 137
    Par défaut
    tu utilise des formules excel donc les with ne fonctionne pas.
    Tu dois
    soit utiliser les formules vba (application.worksheetfunction)
    soit inscrire le nom de la feuille dans la formule
    soit mettre des guillemets pour integrer les variables.

  5. #5
    Membre éclairé
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    241
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2012
    Messages : 241
    Par défaut
    voila la modification :

    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
    Sub estimé()
     
     Dim colonne As Integer
     Dim ligne As Integer
     Dim Sheet2 As Worksheet
     Set Sheet2 = Feuil2
     
     
        colonne = InputBox("quel colonne ?", "Titre") 'La variable reçoit la valeur entrée dans l'InputBox
        ligne = InputBox("quel ligne ?", "Titre") 'La variable reçoit la valeur entrée dans l'InputBox
     
     
     
     
    For i = colonne To 18
     
        Cells(ligne, i).Formula = _
            "=INDEX('" & Sheet2 & "'!" & Cells(3, 1) & ":" & Cells(29, 16) & _
            ",MATCH(" & Cells(7, 2) & ",'" & Sheet2 & "'!" & Cells(3, 1) & ":" & Cells(29, 1) & ",0),3)"
     
     
    Next i
    Set Sheet2 = Nothing
     
     
    End Sub
    J'ai une erreur d'exécution 438 : Propriété ou méthode non gérée par cet objet.

  6. #6
    Membre chevronné
    Homme Profil pro
    Ingénieur Industrialisation
    Inscrit en
    Mai 2015
    Messages
    222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur Industrialisation
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2015
    Messages : 222
    Par défaut
    Utilise la propriété .Name de la Sheet2, sinon le code ne sait pas quoi écrire sinon...

    De plus, il te manque l'adresse des cells dans ta formule... Si tu utilises une worksheetfunction, VBA accepte les objets, mais là tu écris une formule dans une cellule, donc une string.. Il n'accepte pas les objets, mais leur adresse ou leur nom (donc sous forme de texte également, d'où la nécessité d'utiliser les propriétés .Address et .Name)

    Si tu veux que cela fonctionne, écris ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Cells(ligne, i).Formula = _
            "=INDEX('" & sheet2.Name & "'!" & Cells(3, 1).Address & ":" & Cells(29, 16).Address & _
            ",MATCH(" & Cells(7, 2).Address & ",'" & sheet2.Name & "'!" & Cells(3, 1).Address & ":" & Cells(29, 1).Address & ",0),3)"
    Chez moi ça marche

    Quentin

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

Discussions similaires

  1. Problème prise en compte fichier Code:Blocks
    Par drefou dans le forum GTK+ avec C & C++
    Réponses: 3
    Dernier message: 11/09/2007, 10h34
  2. Gerer les propriété d'un TextBox (With, end With)
    Par geeksideofme dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 02/07/2007, 17h57
  3. Problème : Prise en compte des modifications
    Par PhilippeBedin dans le forum ASP.NET
    Réponses: 5
    Dernier message: 04/03/2007, 18h45
  4. [VBA-E] Limitation des With...End With
    Par bernard38 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 27/10/2006, 15h59
  5. [VB.NET] With...End With et performances ?
    Par Dnx dans le forum Windows Forms
    Réponses: 9
    Dernier message: 06/04/2005, 12h37

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