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 d'enregistrement d'un range dans une variable


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
    Juin 2012
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 16
    Par défaut Problème d'enregistrement d'un range dans une variable
    Bonjour à tous,

    Un problème sur lequel je m'arrache les cheveux depuis un petit moment ce matin :
    Je désire créer une macro avec un sub positionnement_données qui permet de repérer un texte en parcourant un certain range de cellule "domaine" et de placer dans une autre cellule (avec un offset choisi) une valeur "val". Pour la partie recherche, j'utilise notamment la méthode .Find sur mon domaine.

    Voila où est mon soucis : le code suivant (de base, disons, car pas encore paramétré, etc...) fonctionne correctement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Public Sub Main()
    Application.ScreenUpdating = False
    'On recherche la ligne correspondant au modèle : attention, on ne trouve que le premier avec ce nom.
    RC_Row = ActiveWorkbook.Worksheets(4).Range("A1:A6").Find(What:="Test", LookIn:=xlValues).Row
    RC_Column = ActiveWorkbook.Worksheets(4).Range("A1:A6").Find(What:="Test", LookIn:=xlValues).Column
    Column_Val = RC_Column + 1
    Row_Val = RC_Row + 0
    ActiveWorkbook.Worksheets(4).Cells(Row_Val, Column_Val).Value = "Val"
    Application.ScreenUpdating = True
     
    End Sub
    Par contre, dés l'instant où j'essaie de paramétriser, notamment en considérant une range appelée Domaine, ça ne marche plus !

    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
    Public Sub Main()
    '    Sheets("Template_1").Visible = True
    '    Sheets("Template_1").Select
    '    Domtest = Worksheets("Template_1").Cells(1, 1)
    'Sheets("Template_1").Visible = True
    'Sheets("Template_1").Select
    Domaine = ActiveWorkbook.Worksheets(4).Range("A1:A6")
    Application.ScreenUpdating = False
    'On recherche la ligne correspondant au modèle : attention, on ne trouve que le premier avec ce nom.
    RC_Row = Domaine.Find(What:="Test", LookIn:=xlValues).Row
    RC_Column = Domaine.Find(What:="Test", LookIn:=xlValues).Column
    Column_Val = RC_Column + 1
    Row_Val = RC_Row + 0
    ActiveWorkbook.Worksheets(4).Cells(Row_Val, Column_Val).Value = "Val"
    Application.ScreenUpdating = True
     
    End Sub
    Et le message d'erreur suivant apparait pour la ligne 10 (RC_Row=...) :
    Erreur d'exécution '424' :

    Objet requis
    Le problème viendrait donc de la ligne 7, où je définis domaine, mais impossible de comprendre pourquoi... Je viens donc chercher des lumières ici.
    Des suggestions ? Merci d'avance.

    PS : Je sais que ce code manque quelques tests (du style "Et si le texte n'est pas trouvé ?") mais là, dans l'exemple que j'utilise, le texte "Test" est bien présent donc ce n'est pas un problème.

  2. #2
    Membre émérite Avatar de issoram
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2009
    Messages
    665
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 665
    Par défaut
    Bonjour,

    Essaie avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set Domaine =  ActiveWorkbook.Worksheets(4).Range("A1:A6")
    ligne 7

    Bonne aprem.

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 16
    Par défaut
    Nickel, ça marche ! Merci beaucoup.

    Je me sens vraiment bête pour le coup. J'ai trituré tellement d'autres trucs dans tous les sens que j'ai laissé passer ça ... mais bon toujours est-il que j'ai réussi à faire ce que je voulais et que mon sub tourne correctement désormais. Merci encore une fois.

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

Discussions similaires

  1. [XL-2010] Problème d'enregistrement de données cryptées dans une cellule
    Par Mic13710 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 04/06/2015, 06h58
  2. Réponses: 4
    Dernier message: 09/06/2007, 01h33
  3. Réponses: 1
    Dernier message: 04/04/2007, 11h03
  4. [SQL] Problème d'affichage de caractère spéciaux dans une variable chaîne
    Par Kryptonaute dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 18/08/2006, 08h40
  5. Recuperer un enregistrement de requete SQL dans une variable
    Par kleenex dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 14/09/2005, 15h59

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