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 :

Détection d'une valeur dans un tableau de données variables - VBA [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mai 2017
    Messages : 4
    Par défaut Détection d'une valeur dans un tableau de données variables - VBA
    Bonjour à tous,

    Débutant en VBA, je rencontre un souci qui est le suivant:

    J'ai un tableau de données comportant 6 colonnes (N°, Ref, Nb, Base, Hauteur, Long) avec un nombre de ligne indéterminé puisqu'il provient de la récupération de calcul excel via la vba.
    Ce tableau est trié par ordre croissant de la colonne "Base", puis "Hauteur", puis "long".

    A la suite de ma VBA créé, j'aimerais copier les plages de cellule de manière à avoir une plage de cellule par Hauteur différente.
    C'est cette partie qui me bloque puisque je n'est pas la possibilité de connaître le nombre de hauteur différente ni le nombre de ligne présentant la même hauteur.
    Je n'est réussi qu'a bricoler des codes, récupéré sur internet, permettant de réaliser l'action que je veux faire mais avec une plage que j'ai lu (il fonctionne):

    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
     
    Sub Bouton3_Clic()
     
    Dim XLApp As New Excel.Application
    Dim XlBook As Workbook
    Dim monfichier, chemin As String
     
    monfichier = Range("calcul!c4") & "_ebras_" & Range("calcul!e5") & "_x_" & Range("calcul!f5") & ".csv"
    chemin = "Mon Chemin d'accès"
    Set XlBook = XLApp.Workbooks.Add
     
    'copie de la plage que j'ai lu
    Worksheets("calcul").Range("b4:g5").Copy
        With XlBook.Worksheets("feuil1")
            .Range("a1").PasteSpecial Paste:=xlPasteValues
        End With
    Application.CutCopyMode = False
     
    XlBook.Sheets("Feuil2").Delete
    XlBook.Sheets("Feuil3").Delete
    XlBook.SaveAs Filename:=(chemin & monfichier)
    XlBook.Close savechanges:=False
     
    End Sub
    Merci d'avance
    Loïc

  2. #2
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    Bonsoir
    si j'ai bien compris ta demande tu peux choisir entre l'une des deux solutions
    1/ Un userform comprenant un combobox (ou tu va choisir la hauteur) et un listbox qui va enregistré toutes les lignes qui ont la hauteur choisie
    2/ Ou bien envoyer dans une deuxième feuille les lignes qui correspond à une hauteur choisie (via un inputbox par exemple)
    Toutefois un tableau dynamique croisé avec des segments fait bien l'affaire sans recourir à VBA

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mai 2017
    Messages : 4
    Par défaut
    Bonjour bennasr,

    L'idée est que pour chaque plage comprenant la même hauteur, dans ce tableau qui es un tableau intermédiaire, je veux pouvoir en faire un fichier ".csv".
    Mais aussi les hauteurs sont des valeurs calculés donc je peut pas les connaître d'avance et surtout j'aimerais que le même bouton qui me rempli et trie ce tableau puisse copié les plages de hauteurs / hauteur différentes et les colles dans un nouveau fichier excel que j'enregistre en fichier ".csv" via vba.
    Il faudrait que l'utilisateur n'est besoin que de cliquer sur le bouton et tous les fichiers ".csv" s'enregistre dans son dossier.

    J'espère avoir été plus clair

    Loïc

  4. #4
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    Bonsoir Loic
    Je suis débutant en VBA et autodidacte en VBA mais j'ai un fichier qui peut t'aider
    en effet c'est un fichier récapitulatif des devises (de ce super site) et qui ouvre une nouvelle feuille pour chaque devise
    elle correspond presque à ce que tu cherche, Toutefois je peux pas l'adapter à tes besoins vu que mes connaissance sont limités
    Ci joint la feuille et à toi d'essayer d'adapter

    Bonne Continuation
    Fichiers attachés Fichiers attachés

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mai 2017
    Messages : 4
    Par défaut
    Salut Bennasr,

    C'est exactement ce que je veux faire sauf qu'il faut copier chaque plages dans un nouveau classeur à chaque fois.
    Mon niveau de VBA ne me permettra pas de pouvoir adapter le code je n'arrive pas à comprendre ce code il y a trop de "fonction" que je ne connais pas.

    Si une personne pourrais prendre du temps pour adapter le code de cette feuil excel à ce que j'essaie de formuler ce serais super.


    Merci pour ton aide tout de même

  6. #6
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    Pour espérer un aide de l'un de ce super site je te conseille de copier le code et le mettre entre balse #
    car aucun n'ouvre les pièces jointes
    En fait c'est ce que disent les règles du forum

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 05/01/2007, 20h04
  2. Réponses: 4
    Dernier message: 27/11/2006, 23h20
  3. Chercher une valeur dans un tableau
    Par christel1982 dans le forum ASP
    Réponses: 5
    Dernier message: 14/09/2006, 09h01
  4. Rechercher une valeur dans un tableau
    Par pafi76 dans le forum Access
    Réponses: 2
    Dernier message: 29/06/2006, 14h23
  5. Réponses: 21
    Dernier message: 28/02/2006, 15h23

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