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 :

Plage de données de la colonne A, de toutes les feuilles


Sujet :

Macros et VBA Excel

  1. #1
    Membre éclairé
    Homme Profil pro
    Assistant technique
    Inscrit en
    Février 2007
    Messages
    336
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Assistant technique
    Secteur : Services à domicile

    Informations forums :
    Inscription : Février 2007
    Messages : 336
    Par défaut Plage de données de la colonne A, de toutes les feuilles
    Bonjour,

    Pourriez-vous me dire comment faire sur VBA pour prendre en compte la plage de données de la colonne A, sur toutes les feuilles

    Car j'avais réfléchis à truc du genre :

    - ouvrir première feuille
    - sauvegarder dans une variable la plage A1:dernière cellule active
    - ouvrir deuxième feuille,
    - etc...

    Mais c'est pas bon, car faudrait que je connaisse par avance le nombre de feuille dans le classeur afin de déclarer au préalable les variables, or je vais utiliser ce code sur différents classeurs, donc nombre de feuilles non connu à l'avance

    Merci par avance pour votre aide !!

  2. #2
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 13
    Par défaut
    Hello,

    Pour savoir le nombre de feuille :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim nombre_feuille As Integer
     
        nombre_feuille = ThisWorkbook.Sheets.Count
    ensuite pour sélectionner la colonne A :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim Sh As Sheet
     
        For Each Sh In Sheets
            Range("A1").EntireColumn.Select
        Next
    Voila, ensuite à toi de mixer ça dans ton code

    A+

  3. #3
    Membre éclairé
    Homme Profil pro
    Assistant technique
    Inscrit en
    Février 2007
    Messages
    336
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Assistant technique
    Secteur : Services à domicile

    Informations forums :
    Inscription : Février 2007
    Messages : 336
    Par défaut
    Voilà :

    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
     
    Sub AB1_nb_de_fois_débiteur()
     
    Dim ash As String
     
    ash = ActiveSheet.name
     
    Sheets.Add.name = "base"
     
    For Each Sheet In Sheets
    If Sheet.name <> "base" Then
     
    Sheet.Activate
    Columns("A:A").Select
    Selection.SpecialCells(xlCellTypeConstants).Select
    Selection.Copy
    Worksheets("base").Select
    ActiveSheet.Paste
    Range("a65536").End(xlUp).Offset(1, 0).Select
    Application.CutCopyMode = False
     
    End If
    Next Sheet
     
    Worksheets(ash).Select
     
    Columns("F:F").Select
    Selection.SpecialCells(xlCellTypeBlanks).Select
     
    Dim c As Variant
     
    For Each c In Selection
     
    c.Value = Application.WorksheetFunction.CountIf(Worksheets("base").Range("A:A"), c.Offset(0, -5))
     
    Next c
     
     
    End Sub
    Par contre, je ne sais pas pourquoi mais il me sélectionne deux fois la première feuille, donc il copie/colle deux fois les mêmes données

  4. #4
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    Oulala...
    Pourquoi des Activate et des Select?

    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 AB1_nb_de_fois_débiteur()
      Dim c As Range
      Dim ash As Worksheet
      Dim Sheet As Worksheet
     
      Set ash = ActiveSheet    ' Pas idéal. Il vaut mieux faire référence à la feuille par son nom
      ' Set ash = Worksheets("xxx")
     
      For Each Sheet In Sheets
        If Sheet.name <> "base" Then
          Sheet.Columns("A:A").SpecialCells(xlCellTypeConstants).Copy _
              Worksheets("base").Range("a65536").End(xlUp).Offset(1, 0)
          Application.CutCopyMode = False 
        End If
      Next Sheet
     
      For Each c In ash.Columns("F:F").SpecialCells(xlCellTypeBlanks) 
        c.Value = Application.WorksheetFunction.CountIf(Worksheets("base").Range("A:A"), c.Offset(0, -5))
      Next c
    End Sub
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  5. #5
    Membre éclairé
    Homme Profil pro
    Assistant technique
    Inscrit en
    Février 2007
    Messages
    336
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Assistant technique
    Secteur : Services à domicile

    Informations forums :
    Inscription : Février 2007
    Messages : 336
    Par défaut
    Merci !!

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

Discussions similaires

  1. Insertion ligne vide dans une colonne, mais pas toutes les colonnes.
    Par gsekscor dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 21/04/2013, 22h33
  2. Réponses: 1
    Dernier message: 11/10/2012, 19h31
  3. [Toutes versions] copier colonnes de toutes les feuilles d'un fichier
    Par cyberboy00 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 18/04/2011, 17h18
  4. afficher la premiere colonne de toutes les feuilles du classeur
    Par abj8077 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 14/01/2011, 14h08
  5. Réponses: 3
    Dernier message: 10/03/2009, 20h06

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