Syntaxe programmation VB sur excel

Résolu
usdy Messages postés 258 Statut Membre -  
usdy Messages postés 258 Statut Membre -
Bonjour,
je programme souvent sur VB.net mais je me suis récemment mis à programmer sur vba (vb pour excel)
j'ai remarqué des différences, est ce que quelqu'un sait comment faire apparaitre une userform2 quand on clique valider sur userform1.
Sur VB il fallait mettre userform2.show, je recherche l'équivalent sur vba.
Quand l'utilisateur saisit dans une textBox un entier, je voudrais supprimer la ligne sur ma feuille excel correspondant à cet entier : merci de m'indiquer la syntaxe correspondant à ma demande.
Configuration: Windows XP
Firefox 3.0.1

4 réponses

  1. wilfried_42 Messages postés 912 Statut Contributeur 245
     
    Bonjour

    sur excel, tu ne peux afficher qu'une userform à la fois (enfin presque)

    tu as 2 solutions, soit tu caches la premiere pour afficher la seconde
    UserForm1.hide
    UserForm2.show
    Userform1.show

    si tu veux plusieurs USF sur un ecran, elle doivent etre toutes ouvertes avec cette methode

    Userform1.Show 0 ' En show modale 0
    0
  2. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Bonjour,
    Sur VBA (VB excel) tu peu afficher autant de Userform que tu veux et ta syntaxe est la bonne.
    Mais si tu est en test et que tu n'a pas changer la propriété StartupPosition elle sont l'une sur l'autre, déplace le UF2 et tu les verras tout les deux.
    Pour supprimer une ligne la syntaxe est
        Rows("15:15").Select
        Selection.Delete Shift:=xlUp

    ou,
    Dim Lig as long
        Lig = 15
        Rows(Lig).Delete 

    et pour être certain que tu supprime la ligne dans la bonne feuille
    Dim lig As Long
    lig = 15
        Sheets("Feuil1").Rows(lig).Delete

    Un petit conseil, pour connaître la syntaxe de VBA tu peu exécuter les commandes au moyen de l'éditeur de macro.
    >> Outils >> Macro >> nouvelles macro.
    Tu exécute ce que tu veux optimiser et ensuite tu arrète la macro. Tu trouve le résultat dans un module.
    A+
    0
  3. usdy Messages postés 258 Statut Membre 6
     
    bonjour,
    merci pour ton aide ça a bien marché mais j'ai un autre souci que je n'arrive pas à régler depuis plus d'une journée.
    je veux recuperer la ligne d'une cellule en indiquant le contenu de la cellule : pour cela je fais : cells("sous total articles", "E").Rows mais cela ne marche pas.

    dans la première ligne de ma feuille j'ai le nom des colonnes, ensuite dans les ligne suivantes de la première colonne j'ai le nom des articles et dans les autres colonnes j'ai des nombres. Après la liste des articles j'ai un sous total. Quand je supprime ma ligne le sous total n'ai pas réinitialisé donc pour cela je voudrais dire que le sous total de ma ligne "sous total article" correspond à la somme des lignes contenues entre la ligne qui se trouve au dessus de la ligne sous total et de la ligne 6.
    Je ne veux pas utiliser les coordonnées ABC....car si je supprime plusieurs lignes alors mon programme n'ai plus valide.
    merci de m'aider car j'ai essayé toutes les possibilités mais j'ai des erreurs à la compilation.
    0
    1. lermite222 Messages postés 9042 Statut Contributeur 1 199
       
      Bonjour
      ta question ,n'est pas claire, si tu met une formule somme, par exemple entre la ligne 2 et 10 et en 11 tu met la formule SOMME tu peu ajouter ou supprimer des lignes entre et le total serra toujours bon ?
      Explique un peu plus si tu veux et donne un exemple concret.
      A+
      0
  4. usdy Messages postés 258 Statut Membre 6
     
    j'ai finalement trouvé hier.
    merci pour ton aide.
    a+
    0