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 :

VBA - Sélectionner les colonnes de la colonne B à la dernière colonne non vide -9


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Décembre 2014
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2014
    Messages : 69
    Points : 44
    Points
    44
    Par défaut VBA - Sélectionner les colonnes de la colonne B à la dernière colonne non vide -9
    Bonjour,

    Avez vous un code VBA permettant de supprimer les colonnes de la colonne B à ["la dernière colonne non vide] -9 colonnes ?

    Mon code est le suivant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        Columns("C:DX").Select
        Selection.Delete Shift:=xlToLeft
    Mais mon soucis c'est que le nombre de colonne entre la colonne C et la dernière colonne - 9 colonnes peut varier.

    Merci par avance pour votre aide.

    Cordialement.

  2. #2
    Membre émérite Avatar de antonysansh
    Homme Profil pro
    Chargé d'études RH
    Inscrit en
    Mai 2014
    Messages
    1 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé d'études RH
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2014
    Messages : 1 115
    Points : 2 439
    Points
    2 439
    Par défaut
    Voila de quoi avoir la derniere colonne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim Deniere_Colonne&
    Deniere_Colonne = ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Column

  3. #3
    Membre du Club
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Décembre 2014
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2014
    Messages : 69
    Points : 44
    Points
    44
    Par défaut
    Bonjour et merci pour ton aide,

    Par conter je n'arrive pas à l'exploiter pour supprimer les colonnes souhaitées car le code renvoie un numéro alors que le format des colonne est en lettre

  4. #4
    Expert éminent sénior
    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
    Points : 18 674
    Points
    18 674
    Par défaut

    Bonjour,

    et non ! Les colonnes sont aussi référencées numériquement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub Demo()
        With ActiveSheet.UsedRange.Columns
            Columns(2).Resize(, .Item(.Count).Column - 10).Delete
        End With
    End Sub
    _____________________________________________________________________________________________________

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

    _____________________________________________________________________________________________________
    Je suis Charlie - Je suis Bardo

  5. #5
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 141
    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 141
    Points : 9 976
    Points
    9 976
    Billets dans le blog
    5
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range(Columns(3), Columns(Deniere_Colonne)).Delete

  6. #6
    Expert éminent sénior
    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
    Points : 18 674
    Points
    18 674
    Par défaut

    Par sécurité, vérifier s'il y a au moins une colonne à supprimer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub Demo()
        With ActiveSheet.UsedRange.Columns:  R& = .Item(.Count).Column - 10:  End With
        If R > 0 Then Columns(2).Resize(, R).Delete
    End Sub
    _____________________________________________________________________________________________________

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

  7. #7
    Membre expert
    Avatar de Igloobel
    Homme Profil pro
    Développeur ERP - VBA et Formateur bureautique
    Inscrit en
    Septembre 2005
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur ERP - VBA et Formateur bureautique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 869
    Points : 3 442
    Points
    3 442
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    j'ai découvert récemment "UsedRange" qui récupère la dernière ligne ou la dernière colonne où il y a une donnée

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub Calc_dern_Lig_Col()
       Dim Nom As String
       Nom = "Feuil1"
     
       MsgBox "Ligne : " & ThisWorkbook.Worksheets(Nom).UsedRange.Rows.Count & vbCrLf & _
       "Colonne : " & ThisWorkbook.Worksheets(Nom).UsedRange.Columns.Count
     
    End Sub
    sinon j'ai trouvé sur msdn

    Cet exemple permet de supprimer les colonnes vides d’une plage sélectionnée.

    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
    34
    35
    36
    37
    38
    39
    40
    41
    VBACopier
     Sub Delete_Empty_Columns()
        'The range from which to delete the columns.
        Dim rnSelection As Range
     
        'Column and count variables used in the deletion process.
        Dim lnLastColumn As Long
        Dim lnColumnCount As Long
        Dim lnDeletedColumns As Long
     
        lnDeletedColumns = 0
     
        'Confirm that a range is selected, and that the range is contiguous.
        If TypeName(Selection) = "Range" Then
            If Selection.Areas.Count = 1 Then
     
                'Initialize the range to what the user has selected, and initialize the count for the upcoming FOR loop.
                Set rnSelection = Application.Selection
                lnLastColumn = rnSelection.Columns.Count
     
                'Start at the far-right column and work left: if the column is empty then
                'delete the column and increment the deleted column count.
                For lnColumnCount = lnLastColumn To 1 Step -1
                    If Application.CountA(rnSelection.Columns(lnColumnCount)) = 0 Then
                        rnSelection.Columns(lnColumnCount).Delete
                        lnDeletedColumns = lnDeletedColumns + 1
                    End If
                Next lnColumnCount
     
                rnSelection.Resize(lnLastColumn - lnDeletedColumns).Select
            Else
                MsgBox "Please select only one area.", vbInformation
            End If
        Else
            MsgBox "Please select a range.", vbInformation
        End If
     
        'Turn screen updating back on.
        Application.ScreenUpdating = True
     
    End Sub
    A adapter à ton pbl

    A

    Une fois de plus Marc-L

    je

  8. #8
    Expert éminent sénior
    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
    Points : 18 674
    Points
    18 674
    Par défaut




    Merci !

    Et j'en ai profité pour corriger une coquille : la virgule manquait avant le R dans le Resize du post #6 …

Discussions similaires

  1. [XL-2010] Dernière cellule non vide de la colonne A d'un classeur fermé
    Par modus57 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 08/09/2011, 21h14
  2. Recherche de la dernière cellule non vide d'une colonne
    Par tasse2the dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 07/04/2009, 10h30
  3. Dernière cellule non vide d'une colonne
    Par benfatpatra dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 21/10/2008, 18h28
  4. renvoi dernière cellule non vide d'une colonne
    Par emilie31 dans le forum Excel
    Réponses: 5
    Dernier message: 29/09/2008, 16h26
  5. Dernière cellule non vide d'une colonne
    Par RéviAT dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 29/02/2008, 15h43

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