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 :

Probleme entre Range() et cells() [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 80
    Par défaut Probleme entre Range() et cells()
    Bonjour,
    J'ai vraiment du mal avec "Range(cells).
    Cela fait un moment que je cherche mon erreur mais en vain. Je fais une recherche d'une cellule et je récupère (ligne colonne). Delà je veux récupérer une valeur et la copier dans une autre feuille. Tout va bien si je mets "nom1 = Range("B4") " la variable nom1 est bien retenue par contre en mettant " nom1 = Range(Cells(ligne - 1, Col)) " erreur "la méthode Range de l'objet a échoué".
    Avez vous une idée de mon erreur?
    Merci beaucoup pour votre aide
    Portez vous bien
    Pascal

    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
    Sub recherche_match()
    
    Application.ScreenUpdating = False
    'Call DEpro
    Dim MATCH As String 'MATCH
    Dim nom1 As String '
    Dim nom2 As String '
    Dim x As Range
    Dim plage As Range
    Dim ligne As Integer
    Dim Col As Integer
    
        Sheets("saisie").Select
        MATCH = Range("C4")
        
        Sheets("Tournoi32").Select
        Set x = Range("B4:B300,D4:D300,F4:F300").Find(MATCH, , xlValues, xlWhole, , , False)
    
        If Not x Is Nothing Then
            ligne = x.Row
            Col = x.Column
    MsgBox MATCH 'test
    MsgBox Col 'test
            
            nom1 = Range(Cells(ligne - 1, Col))
            'nom1 = Range("B4") 'test
    MsgBox nom1 'test
    
            Sheets("saisie").Select
            Range("D4") = nom1
    End If
    End Sub

  2. #2
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    bonjour
    je crois
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     nom1 = Cells(ligne - 1, Col)
    au lieu de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     nom1 = Range(Cells(ligne - 1, Col))
    autre chose
    je crois qu'il est recommandé d'éviter les select, définir ton onglet de traitement à travers :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    dim F as worksheet
    set F = Sheets("saisie")
    '
    '
     Set x = F.Range("B4:B300,D4:D300,F4:F300").Find(MATCH, , xlValues, xlWhole, , , False)
    '
    '

  3. #3
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 173
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Lorsqu'il sagit de définir une seule cellule, la syntaxe de Range et Cells est relativement simple

    Pour les exemples ci-dessous, les plages concernées sont dans la feuille nommée db du classeur où se trouve le code VBA (ThisWorkbook) et donc la déclaration des variables objets sera la même pour tous les exemples

    En tête de procédure
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim sht As Worksheet
    Dim rng As Range
    Set sht = ThisWorkbook.Worksheets("db")
    Exemples pour définir

    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 80
    Par défaut
    Merci énormément pour votre aide.
    Pourquoi faire compliquer quand on peut faire simple!
    J'ose comment sélectionner plusieurs plages (Range() séparateur , ) mais cells?

    Encore merci
    Portez vous bien.
    Pascal

  5. #5
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 173
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    J'ose comment sélectionner plusieurs plages (Range() séparateur , ) mais cells?
    Pour définir une variable objet de type Range dont les plages ne sont pas contiguës

    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

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

Discussions similaires

  1. Différence entre Range et cells
    Par bibvba dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 19/06/2017, 12h36
  2. [Toutes versions] Différence entre range et cells pour une formule
    Par Pierre Dumas dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 27/01/2011, 06h09
  3. [PostgreSQL] [PostgreSQL] Probleme entre PHP & PostgreSQL
    Par flo78 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 13/01/2006, 10h51
  4. Réponses: 8
    Dernier message: 30/12/2005, 13h47
  5. [MFC] enorme probleme entre statics et includes
    Par giova_fr dans le forum MFC
    Réponses: 4
    Dernier message: 09/12/2005, 14h15

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