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 :

Dérouler une cellule jusqu'à la dernière ligne de la colonne d'avant [XL-2013]


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé Avatar de backx3
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2014
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Yvelines (Île de France)

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

    Informations forums :
    Inscription : Octobre 2014
    Messages : 173
    Par défaut Dérouler une cellule jusqu'à la dernière ligne de la colonne d'avant
    Bonjour, je pense que mon probleme est tout con, mais je n'arrive pas à trouver...

    Tout est dans le titre, je cherche à dérouler une formule mise en C2 jusqu'à la dernière ligne de la colonne B.

    Voici mon code... :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        Set op = Range("B" & Rows.Count).End(xlUp).Rows
        Range("C2").Select
        ActiveCell.FormulaR1C1 = "=TEXT(RC[-2],""mmmm aaaa"")"
        Range("C2").AutoFill Destination:=Range("C2:C2" & op), Type:=xlFillDefault
    Il me déroule la formule jusqu'à la 2928eme ligne alors que je n'ai que 18 lignes dans ma colonne B, j'pige pas trop

    Des idées ?

    Merci d'avance.

  2. #2
    Membre Expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Par défaut
    Bonjour à toi,

    Déjà dans ton code y a un truc qui me chagrine :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("C2").AutoFill Destination:=Range("C2:C2" & op), Type:=xlFillDefault
    Ta range va forcément être entre C2 et C2XX ou XX vaut op, donc par exemple si op = "18" alors ta range sera "C2:C218"...

    Correction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("C2").AutoFill Destination:=Range("C2:C" & op), Type:=xlFillDefault
    Ensuite tu peux largement simplifier ce petit bout de code comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Set op = Range("B" & Rows.Count).End(xlUp).Row
    Range("C2:C" & op).FormulaR1C1 = "=TEXT(RC[-2],""mmmm aaaa"")"

  3. #3
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

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

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut

    Bonjour, bonjour !

    L'informatique, c'est comme le français : faut pas être nul en orthographe ‼

    Et évidemment quand il y a une faute dès la première ligne …

    Enlever le s inutile de .Rows ainsi que le Set inutile au début ‼ Si au moins la variable avait été déclarée …

    Voilà, voilà !

    ______________________________________________________________________________________________________
    Je suis Paris, Charlie, …


  4. #4
    Membre Expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Par défaut
    Bien vu !!
    Ca ne m'as même pas sauter aux yeux !
    J'étais ébloui par la concaténation avec le 2 en trop

    Option Explicit ou est tu......

  5. #5
    Membre confirmé Avatar de backx3
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2014
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Yvelines (Île de France)

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

    Informations forums :
    Inscription : Octobre 2014
    Messages : 173
    Par défaut
    Bonjour !

    Merci pour vos réponses, j'ai compris l'histoire du C2:C2, du coup j'ai adapté en mettant C2:C et pourtant il me déroule encore jusqu'à la 228ème ligne et je comprends pas pourquoi vu que j'ai mis "C" et non pas "C2".. Sachant que la dernière ligne de op c'est 18.. '.'

    Désolé pour la réponse tardive :/

  6. #6
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

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

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut


    Apparemment ce n'est toujours pas compris ! Ce serait bien aussi de poster la correction effectuée que l'on puisse vérifier !

    Lire enfin le post #3 …

  7. #7
    Membre confirmé Avatar de backx3
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2014
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Yvelines (Île de France)

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

    Informations forums :
    Inscription : Octobre 2014
    Messages : 173
    Par défaut
    Le code modifié est celui-ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Option Explicit
    Sub ColonneC()
     
     
        Dim op As Integer
        op = Range("B" & Rows.Count).End(xlUp).Rows
        Range("C2:C" & op).FormulaR1C1 = "=TEXT(RC[-2],""mmmm aaaa"")"
     
    End Sub
    Je pensais avoir compris...

  8. #8
    Membre Expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Par défaut
    Tu n'as pas mis tes lunettes en relisant le post #3 de Marc-L

    Dans ton code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Option Explicit
    Sub ColonneC()
     
     
        Dim op As Integer
        op = Range("B" & Rows.Count).End(xlUp).Rows
        Range("C2:C" & op).FormulaR1C1 = "=TEXT(RC[-2],""mmmm aaaa"")"
     
    End Sub
    A la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    op = Range("B" & Rows.Count).End(xlUp).Rows
    Tu utilise la propriété RowS
    Celle-ci renvoi la collection des lignes alors que toi tu veux connaitre le numéro de la ligne.
    Il faut donc utiliser la propriété Row (sans S)

  9. #9
    Membre confirmé Avatar de backx3
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2014
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Yvelines (Île de France)

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

    Informations forums :
    Inscription : Octobre 2014
    Messages : 173
    Par défaut
    Aaaaaah bah vi en effet ça fonctionne mieux !

    Quand tu dis "collection de lignes" tu parles de l'ensemble des lignes ?

    Si c'est ça d'accord j'comprends mieux.... !

    Merci ^.^

  10. #10
    Membre Expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Par défaut
    Oui, un objet Range qui contient toutes les lignes.
    Donc le RowS comme tu l'appels te donne le nombre de ligne au total

  11. #11
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

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

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut

    Ne pas confondre la collection des lignes d'une plage (Rows) et le numéro de ligne d'une cellule (propriété Row) …

    L'orthographe, toujours l'orthographe, même en informatique !

    ______________________________________________________________________________________________________

    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion …

    ______________________________________________________________________________________________________
    Ne pas confondre faux départ et paravent !

  12. #12
    Membre confirmé Avatar de backx3
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2014
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Yvelines (Île de France)

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

    Informations forums :
    Inscription : Octobre 2014
    Messages : 173
    Par défaut
    Ca roule !

    Merci ! Toujours au top ce forum !

    Pourtant j'suis pas trop mal en orthographe ...

    Merci pour vos precisions

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 27/02/2015, 16h29
  2. Réponses: 1
    Dernier message: 22/07/2014, 12h07
  3. [XL-2003] Récupérer une cellule de la dernière ligne non vide d'un tableau
    Par christoff916 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 17/08/2011, 14h22
  4. Réponses: 5
    Dernier message: 27/01/2010, 14h38
  5. incrémenter une cellule jusqu'a une cellule variable
    Par derf3183 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 05/07/2006, 14h48

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