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 :

Problème pour répartir des données mensuellement


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Avril 2020
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Avril 2020
    Messages : 26
    Par défaut Problème pour répartir des données mensuellement
    Bonjour les amis,

    Me voilà à nouveau (et je ne vous remercierai jamais assez pour votre aide). Me voila avec une VBA créée pour répartir des données mensuellement dans un onglet différent à chaque fois.

    Mon premier problème est que j'aimerais que les feuilles vides cessent d'apparaitre à chaque fois que je lance la macro.
    Mon second problème concerne la mise en forme du tableau créé. J'aimerais que les colonnes s'ajustent au contenu du texte d'une part et d'autre part que le tableau nouvellement créé ait des bordures également ajustées (cadre faisant le contour global ou une ligne le fermant à la dernière donnée).

    Quelqu'un pourrait m'aider? Merci d'avance.

    Karim
    Fichiers attachés Fichiers attachés

  2. #2
    Membre Expert Avatar de mfoxy
    Homme Profil pro
    Automation VBA
    Inscrit en
    Février 2018
    Messages
    752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Automation VBA
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2018
    Messages : 752
    Par défaut
    Bonjour Krimo_48,

    Pourrais-tu déposer ton code ici plutôt que le fichier stp ?

    1) Pour les feuilles "vide" qui s'affichent , je suppose qu'il suffirait de mettre une condition et de ne créer la feuille uniquement s'il y a des données à y mettre.
    2) Pour la mise en forme, l'enregistreur de macro serait une très bonne piste.

    Cependant, vu la version d'Excel utilisée, il devrait pas y avoir de question de mise en forme (bordures) vu que tu utilises certainement des tableaux structurés ?

    Bàt,

    MFoxy

  3. #3
    Membre averti
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Avril 2020
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Avril 2020
    Messages : 26
    Par défaut
    Merci pour ton retour Foxy. Pour être honnête, je débute en VBA et n'ai pas de notions de la deuxième partie de ton message.
    Concernant la première partie, voici le code:

    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
    Sub Extrait2()
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
     
     
      Set F = Sheets("Feuil1")
      Set d = CreateObject("scripting.dictionary")
      Tbl = F.Range("b2:b" & F.[b65000].End(xlUp).Row).Value
      For i = 1 To UBound(Tbl)
        temp = Format(Tbl(i, 1), "mmmm yyyy")
        d(temp) = ""
      Next i
      [Z2].Formula = "=and(MONTH(b2)=$aa$1,year(b2)=$ab$1)"
      '[ad2].Resize(d.Count) = Application.Transpose(d.keys)
      For Each c In d.keys
        On Error Resume Next: Sheets(c).Delete: On Error GoTo 0
        Sheets.Add After:=Sheets(Sheets.Count) ' cr?ation
        If c <> vbNullString Then
        ActiveSheet.Name = c
        '-- extraction
        F.[aa1] = Month("01/" & c): F.[ab1] = Right(c, 4)
        F.[A1:g10000].AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=F.[z1:z2], CopyToRange:=[A1]
      End If
      Next c
    End Sub
    Merci d'avance

  4. #4
    Membre Expert Avatar de mfoxy
    Homme Profil pro
    Automation VBA
    Inscrit en
    Février 2018
    Messages
    752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Automation VBA
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2018
    Messages : 752
    Par défaut
    Bonjour,

    Désolé Krimo, complètement zappe.

    Je constate des soucis au niveau codage, l'utilisation des crochets est à proscrire d'un bon code, cfr lien ci-dessous.

    https://www.developpez.net/forums/bl...se-bonne-idee/

    Quelle est la version d'excel que tu utilises ? Supérieur à 2000 je suppose, car le code qu'on t a fournis ne prendra pas en charge les lignes après la 65536 on est passé à plus d'un million depuis la version 2007 si je ne me trompe dans les dates.

    De plus à l'heure actuelle, il est vivement recommandé de travailler avec des tableaux structurés, listObject.

    Ce serait donc mieux, selon moi de revoir le code qui t'a été fournis précédemment.

    Je regarde à cela ce soir, car encore pas mal de boulot.

    Bat,

    MFoxy

  5. #5
    Membre averti
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Avril 2020
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Avril 2020
    Messages : 26
    Par défaut
    Bonsoir Mfoxy,

    Je te remercie pour ta réponse.
    Je confirme travailler sous Office365 et effectivement, j'ai bien copier le code sur un blog.
    Merci encore à l'attention que tu accorderas à mon cas.

    A ce soir.

    Karim

Discussions similaires

  1. [1.x] problème pour reprendre des données dans une DB
    Par phoelis1 dans le forum Symfony
    Réponses: 4
    Dernier message: 02/04/2008, 11h54
  2. [BO XIR2] Problème pour lier des données
    Par LaPanic dans le forum Deski
    Réponses: 3
    Dernier message: 10/02/2008, 17h04
  3. [Tableaux] Problème pour modifier des données
    Par Oli_Ifre dans le forum Langage
    Réponses: 8
    Dernier message: 11/04/2007, 15h33
  4. [LDAP] problème pour récupérer des données
    Par Bizoo dans le forum API standards et tierces
    Réponses: 4
    Dernier message: 06/04/2007, 09h09
  5. Problème pour rentrer des données dans MySQL
    Par Sandara dans le forum Requêtes
    Réponses: 8
    Dernier message: 06/06/2006, 10h59

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