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 :

Position d'un tableau [XL-MAC 2011]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    retraité
    Inscrit en
    Avril 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Avril 2015
    Messages : 6
    Par défaut Position d'un tableau
    Bonjour
    Nouveau et pas très futé en VBA je bloque sur un problème de tableau
    Dans un classeur j'ai trois tableaux représentant l'intérieur de trois couveuses de contenance différente
    ces tableaux sont centrés sur chaque feuille (ne commence pas a la cellule A1)

    Question:
    Peut on trouver en VBA la position et taille du tableau par feuille sachant que les tableaux ne sont pas toujours plein par ligne et colonne (dépend de la ponte)
    Ces tableau contiennent les informations sur les oeufs

    Exemple:
    E10 =>date de mise en couveuse
    E11 =>Race
    F10 =>durée incubation (variant suivant la race)
    G10 =>nombre de jour d'incubation
    H10 =>Date d'éclosion

    Je pense passer par la propriété 'Workbook_SheetChange' du classeur car par la suite des feuilles peuvent être ajouté
    Merci par avance pour vos réponse

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Je n'ai pas Excel Mac mais si c'est la même chose que sur mon PC, vous pourriez utiliser la propriété CurrentRegion d'une cellule nommée dans votre tableau. Par exemple, j'ai nommé la première cellule en haut à gauche de chaque tableau (feuilles : 1,2,3) "DebutTableauCouveuse". Le message dans le vidage d'écran apparaît avec le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub ChercherLAireCouveuse()
     
        With ActiveSheet.Range("DebutTableauCouveuse").CurrentRegion
            MsgBox "Aire : " & .Address & Chr(10) & "Ligne : " & .Row & Chr(10) & "Colonne : " & .Column & Chr(10) & "Nb lignes : " & .Rows.Count & Chr(10) & "Nb colonnes : " & .Columns.Count
     
        End With
    End Sub
    Condition : Il ne faut pas avoir de cellules non vides tout autour de chaque tableau et il ne faut pas avoir de cellules vides dans la première colonne et la première ligne du tableau.

    Cordialement.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    retraité
    Inscrit en
    Avril 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Avril 2015
    Messages : 6
    Par défaut
    Bonjour
    Avant tout merci pour votre réponse
    comme le l'ai dit dans mon 1° post je suis novice en VBA
    j'ai donc fait un copier collé de votre code dans un module pour le tester (erreur) je suppose que ("DebutTableauCouveuse") n'est pas reconnu
    Pour que vous puissiez mieux comprendre je vous joint une copie d'écran de la feuille d'une couveuse (48 oeufs et zone d'éclosion)
    Les autres couveuses font 140 et240 oeufs
    par rang il y a la date de mise en incubation,la race, la durée d'incubation,le temps d'incubation et la date prévu d'éclosion par oeuf
    Actuellement je ne rentre que la date et la race. Excel me complète le reste du tableau en passant par la barre de formule
    J'eleve et reproduit actuellement 16 races de volaille je doit donc modifier 428 formules si je rajoute une race….dur dur
    Je cherche donc un moyen de déterminer la taille et position du tableau pour pouvoir compléter le tableau en passant en VBA au lieu des formules Excel.Les races et durée d'incubation étant sur une autre feuille que je modifierais suivant les races ajoutées

    Les emplacements des oeufs ne sont pas toujours occupe donc vide

    Question:
    Peut-on rechercher le tableau en cherchant les bordures extérieur ? pour le tableau copié "D9:AG42"
    Merci

    Pièce jointe 173829

  4. #4
    Invité
    Invité(e)
    Par défaut
    Ce ne doit pas être très compliqué de créer une zone nommée "DebutTableauCouveuse" dans votre feuille.

    Sinon, si votre première cellule de chacun des tableau est toujours "D10", il vous suffit de remplacer le code transmis par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub ChercherLAireCouveuse()
     
        With ActiveSheet.Range("D10").CurrentRegion
            MsgBox "Aire : " & .Address & Chr(10) & "Ligne : " & .Row & Chr(10) & "Colonne : " & .Column & Chr(10) & "Nb lignes : " & .Rows.Count & Chr(10) & "Nb colonnes : " & .Columns.Count
     
        End With
    End Sub
    Cordialement.

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    retraité
    Inscrit en
    Avril 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Avril 2015
    Messages : 6
    Par défaut
    je ne connais pas la position de la première cellule mais avec votre code cela fonctionne partiellement
    il me donne pour l'aire "$e$9:$p$25" soit la première partie du tableau "E9" étant la première cellule
    Je pense pouvoir m'en sortir en me servant de:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    largeur=ActiveSheet.UsedRange.Rows.Count
    longueur=ActiveSheet.UsedRange.EntireColumn.Count
    pour connaitre la dimension du tableau
    Si vous avez une autre solution …
    Dans tous les cas merci de votre aide

  6. #6
    Invité
    Invité(e)
    Par défaut
    Ne pouvant voir votre vidage d'écran, je ne comprends pas votre problème. Essayez de joindre un vidage d'écran préalablement sauvegardé en JPG par exemple.

    Cordialement.

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

Discussions similaires

  1. [MySQL] problème de position d'un tableau
    Par tawba dans le forum PHP & Base de données
    Réponses: 25
    Dernier message: 04/02/2009, 19h47
  2. Position dans un tableau.
    Par dahmane2007 dans le forum VB.NET
    Réponses: 5
    Dernier message: 24/09/2008, 20h29
  3. Réponses: 2
    Dernier message: 25/08/2008, 12h23
  4. Détermination d'une position dans un tableau
    Par oLie dans le forum Bibliothèque standard
    Réponses: 13
    Dernier message: 21/05/2008, 11h38
  5. Comment changer position d'un tableau ?
    Par pierreonxbox dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 15/06/2006, 10h14

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