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 :

Macro VBA ajout zéro en fin de colonne


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juin 2013
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Juin 2013
    Messages : 14
    Par défaut Macro VBA ajout zéro en fin de colonne
    Bonjour,

    Je suis novice en VBA et j'aimerai savoir si on pouvais me donner un coup de main pour une macro.

    Alors mon souci est le suivant :

    j'ai 3 colonne (A-B-C) qui ne se terminent pas à la même ligne (exemple :colonne A s’arrête à la linge 200, la B à la ligne 150 et la C à la ligne 250).
    J'aimerai mettre un zéro sur les lignes 251 des trois colonnes.

    Avec une macro est-il possible repérer automatiquement quelle colonne est la plus longue et ajouter trois zéro sur la même ligne en fonction de la colonne la plus longue?


    Merci pour votre aide...

  2. #2
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    oui bien sûr c'est possible.

    Intéresse toi à la propriété .CurrentRegion de l'objet Range, en inspectant son nombre de lignes (Rows.Count) tu et en connaissant la ligne de départ (1), tu obtiens facilement le numéro de la dernière ligne, qu'il ne te reste qu'à remplir avec tes 0.

    Mon petit doigts me dit que Range("A1").CurrentRegion.Rows.Count est suffisant pour que tu avances et puisse résoudre ta problématique... mais chut, faut pas le répéter

  3. #3
    Membre averti
    Inscrit en
    Juin 2013
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Juin 2013
    Messages : 14
    Par défaut
    Bonjour,


    Merci pour ta réponse mais CurrentRegion ne fonctionnait pas vu que j'avais des cellules vides dans mes colonnes.
    J'ai néanmoins trouvé une solution ci-dessous mais du coup sa me met un zéro que dans la fin de colonne C (C251) or j'aimerai ajouté aussi un zéro en A251 et B251 ?

    Aurais tu une solution ou un indice...?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Range("C" & Rows.Count).End(xlUp).Offset(1).Select
    Selection.Value = "0"

  4. #4
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    si CurrentRegion ne fait pas l'affaire, il faut augmenter la portée de ta constitution de plage.

    Utilises donc UsedRange, au travers d'un Rows.count.end(xlup).row, que tu auras ramené au trois premières colonnes pour obtenir la réelle dernière ligne de ta plage de trois colonnes

  5. #5
    Membre averti
    Inscrit en
    Juin 2013
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Juin 2013
    Messages : 14
    Par défaut RESOLU
    Super! sa fonctionne parfaitement!

    merci beaucoup Joe!

  6. #6
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    re
    bonjour
    allons Joe!!!
    et si le usedrange fait plus que 3 colonnes et que par exemple la colonne 6 va jusqu'à la ligne 500

    et que la ligne final en ABC correspond a 250 comment on fait hein !!

    non !! non !! c'est pas bon avec ta méthode cela implique qu'il utilise que ces 3 colonnes dans le sheets

    j'ai regarder le post hier j'ai failli répondre la même chose

    j'ai donc tout essayé a part avec specialcell xltypelastcell sur un range je vois pas trop

    A méditer
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  7. #7
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par joe.levrai Voir le message
    Utilises donc UsedRange, que tu auras ramené au trois premières colonnes pour obtenir la réelle dernière ligne de ta plage de trois colonnes

    hum hum ...

    y'a un piège que je n'ai pas réussi à reproduire avec ceci ?
    sans instruction End()

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UsedRange.Resize(, 3).Find("*", , , , xlRows, xlPrevious).Row
    EDIT : m'étant arrêté au début de ton message #6 pour défendre mon bifteack avec ce message, je viens de voir qu'en fin de #8 tu redeviens raisonnable

  8. #8
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    re
    chez moi j'ai l'erreur 438
    l'Object ne gère pas cette propriété
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

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

Discussions similaires

  1. [XL-2007] Macro VBA ajout un champ dans base de donnée
    Par Sangoku76 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 30/10/2012, 09h35
  2. Macro VBA Excel : Comparaison des deux 1ères colonnes de 2 fichiers Excel
    Par techneric dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 10/01/2007, 10h00
  3. [VBA-] ajout de macro dasn les sources fiables
    Par SpaceFrog dans le forum Général VBA
    Réponses: 2
    Dernier message: 27/09/2006, 19h28
  4. [VBA] Ajout colonne dans recordset
    Par le_niak dans le forum Access
    Réponses: 25
    Dernier message: 31/07/2006, 11h35

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