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 :

Insertion de données dans un tableau via textBox [XL-2007]


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
    Septembre 2010
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 93
    Par défaut Insertion de données dans un tableau via textBox
    Bonjour,
    j'ai un tableau avec une ligne de titre et une ligne total. Je souhaite inserer des donnees grace a des textBox entre ces deux lignes. Je ne connais pas à l'avance le nombre de ligne qui viendrons s'intercaler. J'ai ce code qui marche pour inserer mes données mais le probleme c'est que cela les insere juste au dessus de ma ligne de Titres et non entre celle ci est la ligne total.
    Que dois je corriger ?
    merci par avance pour l'aide

    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
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    Dim ligne As String 
    Private Sub CommandButton1_Click() 
    dernierligne 
    Range("A" & ligne).Select 'derniere ligne 
    Selection.Insert Shift:=xlDown 'inserer ligne au dessus 
    ActiveCell.Offset(0, 0).Select 'selectionner ligne 
    ActiveCell.FormulaR1C1 = TextBox1.Text 'saisie du texte 
     
    dernierligne 
    Range("B" & ligne).Select 'derniere ligne 
    Selection.Insert Shift:=xlDown 'inserer ligne au dessus 
    ActiveCell.Offset(0, 0).Select 'selectionner ligne 
    ActiveCell.FormulaR1C1 = "" 'saisie du texte 
     
    dernierligne 
    Range("C" & ligne).Select 'derniere ligne 
    Selection.Insert Shift:=xlDown 'inserer ligne au dessus 
    ActiveCell.Offset(0, 0).Select 'selectionner ligne 
    ActiveCell.FormulaR1C1 = TextBox2.Text 'saisie du texte 
     
    dernierligne 
    Range("D" & ligne).Select 'derniere ligne 
    Selection.Insert Shift:=xlDown 'inserer ligne au dessus 
    ActiveCell.Offset(0, 0).Select 'selectionner ligne 
    ActiveCell.FormulaR1C1 = TextBox3.Text 'saisie du texte 
     
    dernierligne 
    Range("E" & ligne).Select 'derniere ligne 
    Selection.Insert Shift:=xlDown 'inserer ligne au dessus 
    ActiveCell.Offset(0, 0).Select 'selectionner ligne 
    ActiveCell.FormulaR1C1 = "" 'saisie du texte 
     
    dernierligne 
    Range("F" & ligne).Select 'derniere ligne 
    Selection.Insert Shift:=xlDown 'inserer ligne au dessus 
    ActiveCell.Offset(0, 0).Select 'selectionner ligne 
    ActiveCell.FormulaR1C1 = "" 'saisie du texte 
     
    dernierligne 
    Range("G" & ligne).Select 'derniere ligne 
    Selection.Insert Shift:=xlDown 'inserer ligne au dessus 
    ActiveCell.Offset(0, 0).Select 'selectionner ligne 
    ActiveCell.FormulaR1C1 = TextBox4.Text 'saisie du texte 
     
    dernierligne 
    Range("H" & ligne).Select 'derniere ligne 
    Selection.Insert Shift:=xlDown 'inserer ligne au dessus 
    ActiveCell.Offset(0, 0).Select 'selectionner ligne 
    ActiveCell.FormulaR1C1 = "" 'saisie du texte 
     
    End Sub 
    'Chercher la dernière ligne de la colonne A 
    Function LastRow() 
    'feuille active, colonne A 
    LastRow = Cells(Cells.Rows.Count, "A").End(xlUp).Row 
    LastRow = Cells(Cells.Rows.Count, "B").End(xlUp).Row 
    LastRow = Cells(Cells.Rows.Count, "C").End(xlUp).Row 
    LastRow = Cells(Cells.Rows.Count, "D").End(xlUp).Row 
    LastRow = Cells(Cells.Rows.Count, "E").End(xlUp).Row 
    LastRow = Cells(Cells.Rows.Count, "F").End(xlUp).Row 
    LastRow = Cells(Cells.Rows.Count, "G").End(xlUp).Row 
    LastRow = Cells(Cells.Rows.Count, "H").End(xlUp).Row 
    End Function 
    Sub dernierligne() 
    ligne = LastRow 
    End Sub

  2. #2
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonjour,

    exemple :
    1ere partie :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ligne = Range("A" & Rows.Count).End(xlUp).Row
    Range("A" & ligne).Insert Shift:=xlDown 'inserer ligne au dessus
    Range("A" & ligne) = textbox1 'saisie du texte
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 93
    Par défaut
    Merci casefayere ! Mais je n'ai pas compris ce que je devais remplacé par le code que tu m'as donné. excuse moi je suis débutant dans ce domaine.
    Dois je retaper toute les premieres partis de mon code ?

  4. #4
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    oui, en adaptant, J'ai oublié de te dire que "ligne" est un long ou un integer suivant ton nombre de données.

    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 93
    Par défaut
    Re bonjour casefayere, mais cela ne change rien toujoirs le meme probleme.
    Je te met le fichier pour que tu puisses jeter un oeil si possible bien entendu.
    Merci par avance
    Fichiers attachés Fichiers attachés

  6. #6
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Essaies de comprendre et adapter ce début de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub CommandButton1_Click()
    Dim ligne As Long
    Dim Tot As Range
    'pour ta première partie que tu dois adapter ensuite
    With Sheets("feuil1")
        ligne = .Range("B" & .Rows.Count).End(xlUp).Row
        Set Tot = .Range("b11:b" & ligne).Find("TOTAL")
        .Range("A" & Tot.Row).Insert Shift:=xlDown 'inserer ligne au dessus
        .Range("A" & Tot.Row) = TextBox1.Text 'saisie du texte dans col A
        '......
    End With
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 93
    Par défaut
    j'ai adapté le code comme suit mais maintenant c'est le la cellule TOTAL qui s'efface. Je sais je suis nul
    Pourtant je rajoute bien une ligne avec la formule que tu m'as donné mais pas au bon endroit. Je deviens fou

    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
    Private Sub CommandButton1_Click()
    Dim ligne As Long
    Dim Tot As Range
    'pour ta première partie que tu dois adapter ensuite
    With Sheets("feuil1")
        ligne = .Range("B" & .Rows.Count).End(xlUp).Row
        Set Tot = .Range("b11:b" & ligne).Find("TOTAL")
     
        .Range("A" & Tot.Row).Insert Shift:=xlDown 'inserer ligne au dessus
        .Range("A" & Tot.Row) = TextBox1.Text 'saisie du texte dans col A
     
     
        .Range("B" & Tot.Row) = "" 'saisie du texte dans col B
     
     
        .Range("C" & Tot.Row) = TextBox2.Text 'saisie du texte dans col C
     
     
        .Range("D" & Tot.Row) = TextBox3.Text 'saisie du texte dans col D
     
     
        .Range("E" & Tot.Row) = "" 'saisie du texte dans col E
     
     
        .Range("F" & Tot.Row) = "" 'saisie du texte dans col F
     
     
        .Range("G" & Tot.Row) = TextBox4.Text 'saisie du texte dans col G
     
     
        .Range("H" & Tot.Row) = "" 'saisie du texte dans col H
     
    End With
    End Sub

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

Discussions similaires

  1. Insertion de données dans un tableau depuis EXCEL VBA
    Par reda120 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 26/12/2013, 12h11
  2. Insertion de données dans un tableau
    Par PsyKoptiK dans le forum Shell et commandes GNU
    Réponses: 1
    Dernier message: 12/04/2011, 21h22
  3. [MySQL] Problème insertion de données dans une table (via formulaire)
    Par bond70 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 23/04/2010, 16h48
  4. [MySQL] Insertion de donnée dans un tableau array
    Par guigui69 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 18/06/2008, 17h10

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