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 :

fonctions Range et Cells [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2012
    Messages : 11
    Points : 15
    Points
    15
    Par défaut fonctions Range et Cells
    Bonjour,
    je viens de me mettre au VBA il y'a tout juste une semaine.
    J'ai un petit soucis avec les fonction Range et Cells

    J'ai crée un code que chercher dans une colonne une valeur,

    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 test()
     
    Dim numéro As Double
    Dim celluletrouvee As Range
    Dim ligne As Integer
    Dim col2 As Integer
    Dim col As Integer
     
    numéro = Sheets("palier").Cells(3, 3)
     
    Set celluletrouvee = Sheets("valeur d'étalonnage").Range("AI1:AI500").Find(numéro, lookat:=xlWhole)
     
    If celluletrouvee Is Nothing Then
    MsgBox ("la valeur indiquées n'ont pas été trouvé dans la liste: indiquer l'instant exact")
    Else
    ligne = celluletrouvee.Row
    col = celluletrouvee.Column
    MsgBox ("trouvé : ligne = " & numéro & " , colonne = " & col)
    End If
    jusque la, ça marche comme je le souhaite.
    Mais j'ai besoin de copier une selection vers une autre feuille.
    c'est là que j'ai un soucis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    col2 = col + 1
     
    Sheets("valeur d'étalonnage").Range(Cells(ligne, col2), Cells(ligne2, col2)).Copy Destination:=Sheets("palier").Range("D3")
    End Sub
    voila je comprend pas pourquoi
    Cells(ligne, col).selec ça marche.
    Range(Cells(ligne, col), Cells(ligne2, col)).Select ça ne marche pas, j'hesite à chaque fois sur les formats.

    Merci
    Alex

  2. #2
    Membre expérimenté
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    673
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2007
    Messages : 673
    Points : 1 580
    Points
    1 580
    Par défaut
    Bonjour,
    Par défaut, les fonctions Range et Cells se basent sur la feuille active, sauf lorsqu'elles sont attribuées à une feuille précise par la syntaxe Sheets("nom").Range ou Sheets("nom").Cells.
    Dans ton code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("valeur d'étalonnage").Range(Cells(ligne, col2), Cells(ligne2, col2))
    il y a un mélange des deux : Range est pris dans la feuille Sheets("valeur d'étalonnage"), alors que Cells s'applique à la feuille active.
    La bonne syntaxe serait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("valeur d'étalonnage").Range(Sheets("valeur d'étalonnage").Cells(ligne, col2), Sheets("valeur d'étalonnage").Cells(ligne2, col2))
    Pour simplifier on peut passer par une variable
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim shValEtal As Worksheet
    Set shValEtal = Sheets("valeur d'étalonnage")
    ...
    shValEtal.Range(shValEtal.Cells(ligne, col2), shValEtal.Cells(ligne2, col2)).Copy...

  3. #3
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    Bonsoir,
    ou peut-être :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    With Sheets("valeur d'étalonnage")
      .Range(.Cells(ligne, col2).Address, .Cells(ligne2, col2).Address).Copy Destination:=Sheets("palier").Range("D3")
    end with
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2012
    Messages : 11
    Points : 15
    Points
    15
    Par défaut
    Merci pour vos 2 réponses.
    C'est très clair ,je comprend un peu mieux comment ça marcher

    merci
    Alex

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

Discussions similaires

  1. fonction Range
    Par Toad08 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 10/02/2008, 23h44
  2. Fonction UNIQUE pour cell
    Par hidies dans le forum MATLAB
    Réponses: 3
    Dernier message: 26/04/2007, 14h11
  3. [Formule]Probleme Fonction Rang et heure calculée
    Par fredouf dans le forum Excel
    Réponses: 1
    Dernier message: 18/04/2007, 12h26
  4. [VBA-E]Probleme avec la fonction Range
    Par pec dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 24/04/2006, 11h36
  5. [VBA-E]Fonction Range
    Par LE MEAUX dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/02/2006, 07h50

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