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 :

Ajout bouton + insertion ligne + infos ligne


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Inscrit en
    Mai 2005
    Messages
    233
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 233
    Points : 82
    Points
    82
    Par défaut Ajout bouton + insertion ligne + infos ligne
    Bonjour,
    J'aimerai automatiser une feuille de calcul.
    1) tout d'abord je souhaiterai ajouter un bouton d'insertion dans la barre de menu si c'est possible afin d'ajouter une ligne.
    Est ce que c'est possible?
    2) Quel commande permet d'ajouter une ligne?
    3) Comment fait-on pour récupère les infos d'un ligne qu'on sélecionne?
    Merci d'avance pour votre aide.

  2. #2
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Bonjour,

    1) tout d'abord je souhaiterai ajouter un bouton d'insertion dans la barre de menu si c'est possible afin d'ajouter une ligne.
    Est ce que c'est possible?
    2) Quel commande permet d'ajouter une ligne?
    Cette commande existe déjà de base sur Excel
    menu Outils --> Personnaliser --> onglet Commandes --> dans la liste de gauche choisir "Insertion" --> prendre le bouton d'insertion de ligne et le faire glisser dans la barre de menu de son choix

    3) Comment fait-on pour récupère les infos d'un ligne qu'on sélectionne?
    Il y a différents moyens, tout dépend de ce que tu veux faire.
    Par exemple pour copier la ligne dont une cellule est sélectionnée vers la ligne 25
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveCell.EntireRow.Copy Rows(25)

  3. #3
    Membre régulier
    Inscrit en
    Mai 2005
    Messages
    233
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 233
    Points : 82
    Points
    82
    Par défaut D'accord...
    Merci pour ton aide, c'est super.
    Alors en fait pour la sélection de ligne je voudrai réalisé plusieurs manipulations:
    Il faudrait que je sélectionne la ligne en entier.
    Ensuite je clic sur mon bouton pour faire un ajout:
    Dans l'ajout, je souhaiterai reprendre les données de toute la ligne dans une page d'invite qui reprendrait les informations des colonnes A, B et C non modifiables.
    Les informations de la colonne C et D pourront être ajouté.
    Ensuite validation avec bouton OK ou Annuler.

    Après la ligne doit être insérer...
    Elle devra être replacer par ordre alphabétique...

    ça fait beaucoup, j'espère avoir été précis.

    Peux tu me fournir le maximum d'information stp.

  4. #4
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Il n'est pas nécessaire de sélectionner toute la ligne, une seule cellule dans la ligne suffit, peu importe quelle cellule.

    Crée un UserForm avec 5 TextBox dont les 3 premières auront la propriété "Enabled" sur False.

    A l'initialisation de ce UserForm
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub UserForm_Initialize()
    Me.TextBox1 = Cells(ActiveCell.Row, 1) '<-- TextBox1 = colonne A
    Me.TextBox2 = Cells(ActiveCell.Row, 2) '<-- TextBox2 = colonne B
    Me.TextBox3 = Cells(ActiveCell.Row, 3) '<-- TextBox3 = colonne C
    End Sub
    Et pour le bouton "Valider"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub CommandButton1_Click()
    Dim i As Byte
    ActiveCell.EntireRow.Insert '<-- insertion d'une ligne
    'insertion des données des 5 TextBox sur la nouvelle ligne
    'dans les colonnes A à E (1 à 5)
    For i = 1 To 5
        Cells(ActiveCell.Row, i) = Me.Controls("TextBox" & i)
    Next
    End Sub
    Réalise déjà ça, on verra après pour le tri alphabétique.

    Si besoin de plus d'infos sur l'utilisation d'un UserForm
    Utiliser les UserForm en VBA Excel
    Utiliser les contrôles dans un UserForm
    .

  5. #5
    Membre régulier
    Inscrit en
    Mai 2005
    Messages
    233
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 233
    Points : 82
    Points
    82
    Par défaut Très bien!
    C'est super tout marche, j'ai un peu adapté et c'est passé comme une lettre à la poste. Merci beaucoup!
    Il ne me manque qu'une vérification et le tri.
    pour la vérif en fait je dois vérifier que dans la colonne A où il peut y avoir par exemple plusieurs fois marqué chien.
    Il faut que je vérifie dans la deuxième colonne au moment de l'ajout si la lettre n'existe pas déjà...
    ex:
    chien | A
    chien | D
    chien | X
    chien | Z
    Si je fais un ajout avec la lettre C no problem sinon il y a un problème.lol
    Je vais de voir faire une master boucle...

    Et pour le tri il faut que j'ajoute la ligne au bon endroit afin que les lettres se suivent. Ou il y a une autre solution??
    Merci encore pour ton aide!

  6. #6
    Membre régulier
    Inscrit en
    Mai 2005
    Messages
    233
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 233
    Points : 82
    Points
    82
    Par défaut Suite...
    En cherchant un peu, voila ce que j'ai fait:
    Je sélectionne tout mon tableau pour trier sur les 6 premières colonnes tout en gardant la correspondance des lignes.
    Mais apparemment ce n'est pas encore bon.
    Que faut-il changer stp?

    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
     
    Dim Nb_Lignes As Integer
     
    Nb_Lignes = Range("A65536").End(xlUp).Row
     
    'Sélection des lignes à trier
     
    Range("A2:O" & Nb_Lignes).Select
        Selection.Sort Key1:=Range("A2"), Order1:=xlAscending, _
                       Key2:=Range("B2"), Order2:=xlAscending, _
                       Key3:=Range("C2"), Order3:=xlAscending, _
                       Key4:=Range("D2"), Order4:=xlAscending, _
                       Key5:=Range("E2"), Order5:=xlAscending, _
                       Key6:=Range("F2"), Order6:=xlAscending, _
                       Header:= _
            xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
            DataOption1:=xlSortNormal, DataOption2:=xlSortNormal, DataOption3:=xlSortNormal, _
            DataOption4:=xlSortNormal, DataOption5:=xlSortNormal, DataOption6:=xlSortNormal

Discussions similaires

  1. Insertion de multiples lignes.
    Par ludvax dans le forum Oracle
    Réponses: 22
    Dernier message: 11/01/2010, 13h34
  2. [Toutes versions] Insertion automatique de ligne à chaque ajout de feuille
    Par choup67 dans le forum Macros et VBA Excel
    Réponses: 95
    Dernier message: 03/07/2009, 10h42
  3. Bouton insertion de ligne et copie
    Par faruedde dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 20/08/2008, 00h20
  4. Réponses: 18
    Dernier message: 23/06/2007, 01h17
  5. RegExp : Problem avec ajout de retour a la ligne
    Par Roming22 dans le forum Linux
    Réponses: 3
    Dernier message: 12/01/2006, 19h44

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