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 :

Modifier une ligne via USF


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
    Ingénieur sécurité
    Inscrit en
    Novembre 2018
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2018
    Messages : 36
    Par défaut Modifier une ligne via USF
    Bonjour, j'ai un petit oubli car j'avais déjà réussi à le faire mais je viens de passer ma matinée dessus et je n'arrive pas à me remémorer...

    J'ai mon Userform, j'ai une listbox1 avec des références lorsque je sélectionne une référence que je souhaite, j'ai des dates qui s'affichent (qui sont sur la même ligne) j'aimerai modifier la date et qu'elle prenne la place de l'ancien dans mon tableau...
    le PCLA c'est pour le mettre à la suite, mais je sais plus comment on remplace sur la même ligne que la référence de ma listbox1 ?

    Si quelqu'un peut m'aider ce serait super...

    Merci

    Bien Cordialement IA

  2. #2
    Membre Expert Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Par défaut
    Bonjour Akah, bonjour le forum,

    Tout dépend de comment est alimentée ta ListBox.
    La propriété
    [ListIndex]
    permet de récupérer le numéro de ligne si tes données sont uniques. Comme le premier index d'une ListBox est 0, si la première ligne de données commente à la ligne 2, ListIndex + 2 te renverra le numéro de ligne.
    En revanche, si ta ListBox est issue d'un filtrage, la propriété
    [ListIndex]
    ne permet plus cela. Dans ce cas, je stocke le numéro de ligne dans une colonne cachée de la ListBox et ensuite, à la sélection d'un élément, je le récupère...

  3. #3
    Membre averti
    Homme Profil pro
    Ingénieur sécurité
    Inscrit en
    Novembre 2018
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2018
    Messages : 36
    Par défaut
    C'est un combobox pardon... bon la façon de faire doit rester la même

    Voici mon code qui alimente mon combobox1

    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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    Private Sub ComboBox1_Change()
    Dim i As Byte
     
     
    With ComboBox1
    For i = 5 To 8
        Controls("TextBox" & i) = Sheets("feuil1").Cells(.List(.ListIndex, 1), i)
        ComboBox2 = Sheets("feuil1").Cells(.List(.ListIndex, 1), 1)
     
        TextBox25 = Sheets("feuil1").Cells(.List(.ListIndex, 1), 12)
        TextBox26 = Sheets("feuil1").Cells(.List(.ListIndex, 1), 13)
        TextBox27 = Sheets("feuil1").Cells(.List(.ListIndex, 1), 14)
        TextBox28 = Sheets("feuil1").Cells(.List(.ListIndex, 1), 15)
        TextBox29 = Sheets("feuil1").Cells(.List(.ListIndex, 1), 16)
        TextBox30 = Sheets("feuil1").Cells(.List(.ListIndex, 1), 17)
        TextBox31 = Sheets("feuil1").Cells(.List(.ListIndex, 1), 18)
        TextBox32 = Sheets("feuil1").Cells(.List(.ListIndex, 1), 19)
        TextBox33 = Sheets("feuil1").Cells(.List(.ListIndex, 1), 20)
        TextBox34 = Sheets("feuil1").Cells(.List(.ListIndex, 1), 21)
        TextBox35 = Sheets("feuil1").Cells(.List(.ListIndex, 1), 22)
        TextBox36 = Sheets("feuil1").Cells(.List(.ListIndex, 1), 23)
        TextBox37 = Sheets("feuil1").Cells(.List(.ListIndex, 1), 24)
        TextBox38 = Sheets("feuil1").Cells(.List(.ListIndex, 1), 25)
        TextBox39 = Sheets("feuil1").Cells(.List(.ListIndex, 1), 26)
     
     
     
     
        TextBox10 = DateAdd("d", TextBox25, TextBox5)
        TextBox11 = DateAdd("d", TextBox26, TextBox5)
        TextBox12 = DateAdd("d", TextBox27, TextBox5)
        TextBox13 = DateAdd("d", TextBox28, TextBox5)
        TextBox14 = DateAdd("d", TextBox29, TextBox5)
        TextBox15 = DateAdd("d", TextBox30, TextBox5)
        TextBox16 = DateAdd("d", TextBox31, TextBox5)
        TextBox17 = DateAdd("d", TextBox32, TextBox5)
        TextBox18 = DateAdd("d", TextBox33, TextBox5)
        TextBox19 = DateAdd("d", TextBox34, TextBox5)
        TextBox20 = DateAdd("d", TextBox35, TextBox5)
        TextBox21 = DateAdd("d", TextBox36, TextBox5)
        TextBox22 = DateAdd("d", TextBox37, TextBox5)
        TextBox23 = DateAdd("d", TextBox38, TextBox5)
        TextBox24 = DateAdd("d", TextBox39, TextBox5)
     
     
     
    Next i
     
     
    End With
    End Sub
    Je récupère ma valeur avec Listindex certes mais j'aimerai modifier par exemple un textbox et valider pour que ça remplace mon textbox par la nouvelle valeur entrée...

    Par exemple j'ai

    Textbox1 = 2
    Textbox2 = 3
    textbox 3 = 4

    je clique sur la référence que je souhaite afficher via le combobox1 et j'ai Textbox1,2,3 qui s'affiche avec les valeurs qui sont dans excel, je change par exemple Textbox2 que je remplace la valeur par 6, j'aimerai valider pour que ça change ma valeur dans excel et que ça me met lors que ma nouvelle recherche via combobox1
    Textbox1 = 2
    Textbox2 = 6
    Textbox 3 = 4

    Voilà..

  4. #4
    Membre averti
    Homme Profil pro
    Ingénieur sécurité
    Inscrit en
    Novembre 2018
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2018
    Messages : 36
    Par défaut
    voici à quoi ressemble mon commandbutton

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub CommandButton9_Click()
    Dim i As Byte
        For i = 5 To 8
        With Sheets("feuil1")
     
            .Cells(.List(.ListIndex, 1), i) = (CDate(Me.TextBox10.Value) - CDate(Me.TextBox5.Value))
     
        End With
     
    Next i
     
    End Sub
    ça ne marche pas...

  5. #5
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour
    Au sein d'un bloc With, toute variable précédée d'un "." signifie que cette variable est un membre de l'objet déclaré par l'instruction With
    Je ne crois pas que ce que j'ai mis en rouge soient des membres de l'objet Sheets("feuil1")
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Cells(.List(.ListIndex, 1), i) = (CDate(Me.TextBox10.Value) - CDate(Me.TextBox5.Value))

  6. #6
    Membre averti
    Homme Profil pro
    Ingénieur sécurité
    Inscrit en
    Novembre 2018
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2018
    Messages : 36
    Par défaut
    C'était pour "essayer" de récupérer la ligne concernée pour remplacer ma valeur par la nouvelle... mais apparemment c'est loupé...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    X = (CDate(Me.TextBox10.Value) - CDate(Me.TextBox5.Value))
    il faut que je remplace le X par l'identification par Exemple si c'est Colonne C et ligne 5 par .cells(5 , 3) mais là c'est un truc du genre automatique qu'il me faut, identifier la ligne choisi par mon combobox1 puis la colonne c'est fixe

    Donc je me rapproche en faisant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .cells( X, 3) = (CDate(Me.TextBox10.Value) - CDate(Me.TextBox5.Value))
    il me faut détecter en gros la ligne de mon combobox et c'est réussi..

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

Discussions similaires

  1. [XL-2007] modifier une ligne inconnue a l'aide d'1 usf
    Par Pompaero dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 01/10/2012, 18h28
  2. Modifier une ligne dans stdout
    Par getupa dans le forum Général Python
    Réponses: 2
    Dernier message: 21/12/2005, 18h18
  3. Réponses: 2
    Dernier message: 24/11/2005, 11h46
  4. Modifier une ligne d'un fichier
    Par jula dans le forum Linux
    Réponses: 4
    Dernier message: 08/04/2005, 17h24
  5. Comment faire pour modifier une ligne dans une DBGrid?
    Par Nico62 dans le forum C++Builder
    Réponses: 6
    Dernier message: 29/03/2005, 12h24

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