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 :

Récuperer des informations dans une ligne


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Juin 2007
    Messages : 60
    Par défaut Récuperer des informations dans une ligne
    Bonjour,

    Je voudrais une information, j'ai beau chercher sur le forum je n'ai pas trouvé :-(.

    Donc en faite je vous explique je récupère une information dans la base de donnée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     .Options = rs.Fields("Options").Value
    Qui donne en gros par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Options = "Options : 1 Grande Gouttière, 1 Kit Décor, 2 Rampe d'accès, à livrer avant le [Date]"
    Donc en faite je voudrais récupérer les options pour les afficher dans un tableau excel.

    Colone 1 - Colonne 2
    Qté - Désignation
    1 - Grande Gouttière
    1 - Kit Décor
    2 - Rampe d'accès
    Si quelqu'un aurait une idée s'il vous plaît ?

    Merci

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Une idée ? Oui ! La meilleure ? pas sûr...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub test
    Dim Tablo As Variant, i as integr
     
         Tablo = Split(Replace(.option, ":", ","), ",")
         Ligdeb = 5 ' première ligne du report des données, à adapter
         Cells(Ligdeb, 1) = "Qté"
         Cells(Ligdeb, 2) = "Désignation"
         For i = Ligdeb + 1 To Ligdeb + UBound(Tablo) - 1
              Cells(i, 1) = Split(Tablo(i - Ligdeb), " ")(1)
              Cells(i, 2) = "'- " & Right(Tablo(i - Ligdeb), Len(Tablo(i - Ligdeb)) - 2)
         Next
    End Sub
    Mais Cafeine va certainement te donner un code plus sioux

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Juin 2007
    Messages : 60
    Par défaut
    Re ;-)

    Donc après quelque test voici se que j'ai construit mais j'ai une erreur C marque :

    Erreur d'exécution '9' :
    L'indice n'appartient pas à la selection
    Sachant que

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    objCommande.Options = "OPTIONS: 1 Grande gouttière 100mm 2 pentes <=3,0m, 1 Kit décor (Planches de rive, jardinière, haut de fenêtre festonnées, 1 Rampes d'accés 100x100)"
    Apparament le problème viendrais du <=3,0m, je parle principalement de la "," qui doit m'ennuyer :-(

    Sachant également que je n'ai pas besoin de note qui sont entre parenthèse
    )Planches de rive, jardinière, haut de fenêtre festonnées, 1 Rampes d'accés 100x100)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Private Sub AjoutLigneOption(objCommande As Commande)
        Dim LigneOptionAs Variant, i As Integer
     
        LigneOption= Split(Replace(objCommande.Options, ":", ","), ",")
            For i = Ligne + 1 To Ligne + UBound(Tablo) - 1
                Cells(i, 1) = Split(LigneOption(i - Ligne), " ")(1)
                Cells(i, 2) = "'- " & Right(LigneOption(i - Ligne), Len(LigneOption(i - Ligne)) - 2)
            Next
     
    End Sub
    Si tu as une petit solution s'il te plait ?
    J'ai pas compris tout le code actuellement, j'essaye de le traduire pour essayer de me débrouiller tout seul.
    Merci

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Juin 2007
    Messages : 60
    Par défaut
    Rebonjour,

    Donc je cherche toujours actuellement je voudrais supprimer tout se qui me sers a rien comme se qu'il y a entre parenthèse donc j'avais commencer à faire ceci :

    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
    Public Sub Recherche()
    Dim LigneOption As Variant, m As Integer, Ligne As Long
     
        Ligne = 1
     
        Options = "OPTIONS: 1 Grande gouttière 100mm 2 pentes <=3,0m, 1 Kit décor (Planches de rive, jardinière, haut de fenêtre festonnées, 1 Rampes d'accés 100x100), Standby"
     
        Debut = InStr(1, Options, "(")
        Fin = InStr(1, Options, ")") + 1
     
        For m = Debut To Fin
                OptionsFinal = Replace(Options, "(", "", Debut)
                Debut = Debut + 1
                Cells(1, 3) = OptionsFinal
        Next
     
        Cells(1, 1) = Debut
        Cells(1, 2) = Fin
     
     
    End Sub
    Mais sa me supprime tout le début de ma ligne :-(

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Juin 2007
    Messages : 60
    Par défaut
    Coucou,

    Donc j'ai trouvé une solution en m'aidant de ceci :

    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
    Sub Command1()
     
    Dim sChaine As String
    Dim sString As String
    Dim iLocateFirst As Integer
    Dim iLocateSecond As Integer
    Dim iDiff As Integer
     
    sChaine = "OPTIONS: 1 Grande gouttière 100mm 2 pentes <=3,0m, 1 Kit décor (Planches de rive, jardinière, haut de fenêtre festonnées), 1 Rampes d'accés 100x100, Standby"
    '"Pomme (123456789)"
     
    iLocateFirst = InStr(1, sChaine, "(")
    iLocateSecond = InStr(iLocateFirst, sChaine, ")")
    sDiff = iLocateSecond - iLocateFirst
     
     
    sString = Mid$(sChaine, iLocateFirst, sDiff)
    DebutString = Mid$(sChaine, 1, iLocateFirst - 1)
    FinString = Mid$(sChaine, iLocateSecond + 1, sDiff)
    FinalString = DebutString & FinString
     
    Cells(5, 1) = sString
    Cells(6, 1) = DebutString
    Cells(7, 1) = FinString
    Cells(8, 1) = FinalString
     
     
    End Sub

  6. #6
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Il est clair que mon code ne pouvait fonctionner que si les données présentait toujours un format identique et que la quantité, elle-même séparée par un espace de la virgule qui la précède, était séparée également par un espace de l'article.
    Donc, tant mieux si tu as pu trouver un code qui correspond à tes besoins

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

Discussions similaires

  1. [Débutant] Récuperer les informations d'une ligne sélectionnée dans un datagrid
    Par ejourdan dans le forum Silverlight
    Réponses: 1
    Dernier message: 19/04/2013, 15h10
  2. Réponses: 9
    Dernier message: 19/09/2006, 19h27
  3. regrouper des informations dans une seule ligne
    Par rozow dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 11/04/2006, 16h03
  4. Regrouper des colonnes dans une ligne
    Par aturlan dans le forum Access
    Réponses: 1
    Dernier message: 11/01/2006, 21h05
  5. Chercher des mots dans une ligne
    Par chemouz dans le forum C++
    Réponses: 1
    Dernier message: 17/12/2005, 12h42

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