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 :

afficher dernière colonne depuis la selection


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    627
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 627
    Points : 118
    Points
    118
    Par défaut afficher dernière colonne depuis la selection
    j'aimerais que quand je selectionne le range d352 à d355 avec la souris ,ca m'affiche la dernière colonne non vide c'est a dire ca m'affiche l'adresse de la cellule g352 voir photo
    Nom : 0img39.jpg
Affichages : 238
Taille : 35,0 Ko
    j'ai fais un code comme celà mais ca ne marche pas
    merci pour votre aide
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Sub test_col_vide()
    col_deb = Selection.Column
    For j = col_deb To col_deb + 6
    If Application.CountA(Columns(j)) = 0 Then
    dern_col = j: Exit For
    End If
    Next j
    End Sub

  2. #2
    Membre chevronné
    Inscrit en
    Septembre 2007
    Messages
    1 132
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 132
    Points : 1 803
    Points
    1 803
    Par défaut
    Bonjour,

    Comme ceci cela devrait mieux fonctionner
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub test_col_vide()
    col_deb = Selection.Column
    For j = col_deb To col_deb + 6
    If Application.CountA(Cells(Selection.Row, j).Resize(Selection.Rows.Count, 1)) = 0 Then
    dern_col = j: Exit For
    End If
    Next j
    End Sub

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    627
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 627
    Points : 118
    Points
    118
    Par défaut
    merci anasecu ca a l'air de marcher mais pourquoi ajouter .Resize(Selection.Rows.Count, 1)

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par bigs3232 Voir le message
    Bonjour,

    Si l'onglet ne contient pas d'autres cellules non vides en dehors de ce tableau

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
             MsgBox ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).End(xlUp).Address
     
    ' ou pour trouver la colonne
             MsgBox ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Column
    Dernière modification par Invité ; 19/08/2017 à 12h27.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    627
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 627
    Points : 118
    Points
    118
    Par défaut
    merci eric mais c'est celui de anasecu qui correspond à mes besoins
    mais je garde ton code qui est utile

  6. #6
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par bigs3232 Voir le message
    Quand tu auras le temps, tu devrais regarder l'utilisation des tables.

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    627
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 627
    Points : 118
    Points
    118
    Par défaut
    je ne connais pas .tu as un lien que je puisse regarder?

  8. #8
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par bigs3232 Voir le message
    je ne connais pas .tu as un lien que je puisse regarder?
    Le tuto de Silkyroad : Les tableaux dans Excel 2007

    Sinon pour créer un tableau :

    Pièce jointe 304416

    Quand on y a goûté, il est difficile de revenir en arrière.

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    627
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 627
    Points : 118
    Points
    118
    Par défaut
    ah bon.je vais essayer alors mais le vba c'est quand meme plus rapide

  10. #10
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par bigs3232 Voir le message
    ah bon.je vais essayer alors mais le vba c'est quand meme plus rapide
    Justement, travailler en VBA avec une variable ListObject est beaucoup plus simple (de mon point de vue) qu'avec un onglet rempli de données à géométrie variable.
    Dans le vidage d'écran de mon précédent message, la table s'appelle "Tableau1". L'avantage, l'aire est automatiquement définie. Le tableau peut être intégré parmi d'autres dans l'onglet, cela n'a pas d'importance.

    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 DerniereCellule()
     
    Dim MaTable As ListObject
    Dim I As Integer
    Dim DerniereColonne As Long
     
            Set MaTable = ActiveSheet.ListObjects("Tableau1")
            With MaTable
                 DerniereColonne = .ListColumns(.ListColumns.Count).Range.Column
                 For I = .ListColumns.Count To 1 Step -1
                     DerniereColonne = .ListColumns(I).Range.Column
                     If WorksheetFunction.CountA(.ListColumns(I).DataBodyRange) > 0 Then Exit For
                 Next I
                 MsgBox "Dernière colonne : " & DerniereColonne
            End With
            Set MaTable = Nothing
     
    End Sub

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    627
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 627
    Points : 118
    Points
    118
    Par défaut
    merci eric.je vais m y mettre pour tester ca en détail

  12. #12
    Membre chevronné
    Inscrit en
    Septembre 2007
    Messages
    1 132
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 132
    Points : 1 803
    Points
    1 803
    Par défaut
    Bonsoir,
    Citation Envoyé par bigs3232 Voir le message
    mais pourquoi ajouter .Resize(Selection.Rows.Count, 1)
    Parce que 'Selection.Row' te donne la première ligne et 'Selection.Rows.Count' le nombre de lignes de ta sélection, puis le 1 pour la colonne.

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

Discussions similaires

  1. [XL-2007] Afficher/Masquer colonnes en fonction de la selection de date
    Par Akane69 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 21/06/2013, 19h41
  2. [XL-2007] Problème avec Selection cellule dernière colonne
    Par cathodique dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 24/04/2013, 12h17
  3. [XL-2007] Afficher les 3 dernières colonnes
    Par Flaguette dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 13/04/2012, 23h29
  4. [Graphics View] Qtableview et dernière colonne affichée
    Par atalon1 dans le forum Débuter
    Réponses: 1
    Dernier message: 12/10/2010, 22h02
  5. Afficher le nom des colonnes d'un select
    Par cotojo12 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 05/03/2010, 01h29

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