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 :

mémoriser une plage de cellule


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
    Janvier 2009
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 13
    Par défaut mémoriser une plage de cellule
    Bonjour,
    Je débute en vba et j'ai encore beaucoup de lacune. Je voudrais mémoriser une plage de cellule dans un tableau de façon a mettre par la suite le contenu du tableau dans une listbox. J'ai trouvé ça sur le net

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim Tableau_Plage_Titre As Variant
    Tableau_Plage_Titre = ActiveSheet.Range("A4:AM4")
    après avec Tableau_Plage_Titre(i, j), je peux resortir les valeurs.
    Mon problème est que sur cette plage "A4:AM4", j'ai des colonnes de masqué et ça ne me sert à rien de tout mémoriser.
    Y a t-il une écriture qui permet de dire par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Tableau_Plage_Titre = ActiveSheet.Range("A4:AM4").colonne visible
    j'ai bien vu un truc de type SpecialCells(xlVisible) mais apparemment c'est que pour des lignes.
    Je voudrais un truc simple

    merci

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Bonjour.

    Simple, je ne sais pas. Je ne vois comme technique que l'itération sur les lignes et colonnes en excluant les masquées

    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
    Sub Test2()
        Dim Plage As Range
        ReDim Tableau(1, 1)
        Dim i As Long, j As Long
        Dim Ligne As Long, Colonne As Long
     
        Set Plage = Range("C5:g8")
        ReDim Tableau(1 To Plage.Columns(1).Cells.SpecialCells(xlCellTypeVisible).Count, 1 To Plage.Rows(1).Cells.SpecialCells(xlCellTypeVisible).Count)
        For i = 1 To Plage.Columns(1).Cells.Count
            If Plage.Cells(i, 1).EntireRow.Hidden = False Then
                Ligne = Ligne + 1
                Colonne = 0
                For j = 1 To Plage.Rows(1).Cells.Count
                    If Plage.Cells(1, j).EntireColumn.Hidden = False Then
                        Colonne = Colonne + 1
                        Tableau(Ligne, Colonne) = Plage.Cells(i, j).Value
                    End If
                Next j
            End If
        Next i
     
    End Sub
    Il faut adapter la plage ou la passer en paramètres
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  3. #3
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    Bonsoir.

    Tu peux essayer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Tableau_Plage_Titre = ActiveSheet.Range("A4:AM4").SpecialCells(xlCellTypeVisible)
    PGZ

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Citation Envoyé par pgz Voir le message
    Bonsoir.

    Tu peux essayer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Tableau_Plage_Titre = ActiveSheet.Range("A4:AM4").SpecialCells(xlCellTypeVisible)
    PGZ
    As-tu testé?

    Ca ne fonctionne pas chez moi, sinon, je ne me serais pas amusé à écrire une macro...
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  5. #5
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    Citation Envoyé par Pierre Fauconnier Voir le message
    As-tu testé?
    Non. Je proposais d'essayer, mais je n'ai pas testé.

    PGZ

  6. #6
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    J'ai testé et cela ne marche pas.

    Dans le cas simple d'une ligne (A4:AM24), on peut faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim rng As Excel.Range, monTab() As Variant, i As Integer
     
    Set rng = Application.ThisWorkbook.Worksheets("NomFeuille").Range("A4:AM4").SpecialCells(xlCellTypeVisible)
     
    ReDim monTab(1 To 1, 1 To rng.Count)
     
    For i = 1 To rng.Count
        monTab(1, i) = rng(1, i)
    Next i
    J'ai testé.

    PGZ

  7. #7
    Membre averti
    Inscrit en
    Janvier 2009
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 13
    Par défaut merci
    Merci de ton aide. Je devais poser la question avant de me lancer car souvent un code que j'écris en 10 lignes se résume parfois à une ligne.
    Je vais utilise ton code.
    Merci

  8. #8
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Citation Envoyé par philpas3 Voir le message
    Merci de ton aide. Je devais poser la question avant de me lancer car souvent un code que j'écris en 10 lignes se résume parfois à une ligne.
    Je vais utilise ton code.
    Merci
    Hum... As-tu essayé?
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

Discussions similaires

  1. Trier une plage de cellules
    Par Squelet dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 03/12/2019, 13h04
  2. [VBA] Copier une plage de cellules dans un fichier fermé
    Par Invité dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 25/01/2006, 16h52
  3. [VBA] Parcourir une plage de cellule
    Par Dinytro dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 23/09/2005, 08h18
  4. [VBA-E] Image d'une plage de cellule
    Par flogreg dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 15/07/2004, 12h30
  5. [VBA-E] [Excel] Protection d'une plage de cellules
    Par fikou dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 20/11/2002, 11h28

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