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 :

Renvoyer à la ligne suivante qd la ligne précedente est prise.


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 3
    Par défaut Renvoyer à la ligne suivante qd la ligne précedente est prise.
    Bonjour,

    voila j'ai essayé de réaliser un fichier excel avec des macro par contre j'ai un petit problème.

    j'ai créer une boite de dialogue dans laquelle j'ai mis une zone d'édition ("edition"). En validant cette boite de dialogue j'arrive a faire écrire ce qu'il y a ds "edition" dans la "feuil4" ds la case (3,3). Pour cela j'ai créé la macro suivante qui utilise le bouton 2 valider :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub Bouton2_QuandClic()
        Sheets("Feuil4").Select
        Sheets("feuil4").Cells(3, 3).Value = DialogSheets("Dialogue1").DrawingObjects("edition").Text
    End Sub
    Par contre je souhaiterai que ce que je v rentrer la fois suivante ds la meme case edition sécrive dans la meme colonne mais sur la ligne suivante.

    J'arrive pas a savoir comment faire

    Merci d'avance pr votre aide

    Rémy

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2006
    Messages
    288
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 288
    Par défaut
    Salut,
    il te faudrait faire une boucle de vérification avant d'insérer le texte :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    
    Sub Bouton2_QuandClic()
    dim i as integer 'i pointe la première ligne vide
    
    Sheets("Feuil4").Select
    
    i = 3
    do while cells(i,3) <> ""
       i = i+1
    loop
    
    Sheets("feuil4").Cells(i, 3).Value = DialogSheets("Dialogue1").DrawingObjects("edition").Text
    End Sub
    le but est d'utiliser une variable (ici "i") qui indique la première ligne vide où tu peux insérer le texte.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 3
    Par défaut
    Merci Neupont ça marche niquel.

    Par contre une dernière petite question saurais-tu comment effacer tout ce qui est ecrit ds ma boite de dialogue qd je la reouvre car ça lmaisse les derniers trucs marqués.

    encore merci

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2006
    Messages
    288
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 288
    Par défaut
    Ecoute je ne peux pas être sûr car je n'utilise pas ces objets, mais ça ne m'étonnerait pas que tu aies une fonction Clear du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DialogSheets("Dialogue1").DrawingObjects("edition").Clear
    ou sinon essayer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DialogSheets("Dialogue1").DrawingObjects("edition").Text = ""
    A vue de nez, hein...

  5. #5
    Membre éprouvé
    Inscrit en
    Décembre 2007
    Messages
    1 235
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 1 235
    Par défaut
    Slt J'ai une autre soluce peut être plus simple pour toi qui consiste en fait à ne coller la valeur dans une cellule de ta colonne que si cette cellule est vide, se qui revient à tester si la celulle est vide alors je colle sinon je décale de 1 celule vers le bas et ainsi de suite pour cela utilise le bout de code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Set cellule = Worksheets("feuil4").Range("c3")
    Do While Not IsEmpty(cellule)
      Set cellule = cellule.Offset(1, 0)
    Loop
    cellule.Value = DialogSheets("Dialogue1").DrawingObjects("edition").Text
    Voila pour sa et pour vider ton champ Edit, il faut que dans tu fasse un bout de code comme suit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub UserForm_Initialize()
    'Initialisation du champ "Edit"
     
    DialogSheets("Dialogue1").DrawingObjects("edition").Text.Value = ""
    Voila jespere que sa t'aidera

  6. #6
    Membre éprouvé
    Inscrit en
    Décembre 2007
    Messages
    1 235
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 1 235
    Par défaut
    J'ai oublié le Mais je pense que tu va t'en rendre compte

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 3
    Par défaut
    Pour écrire dans les cases suivante les 2 solutions marchent, par contre por effacer, la solution suivante marche mais ne me renvoi pas sur ma page feuil4 qd je clique sur le bouton ok:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DialogSheets("Dialogue1").DrawingObjects("edition").Text = ""

    Par contre j'ai essayé ta solution Moilou2 avec le private sub en la mettant apres ma premiere macro mais ça marche pas.

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

    Informations professionnelles :
    Activité : Engineering

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

    Apparement, si j'ai bien compris, tu as insérer ta "boîte de dialogue" sur une feuille via un TextBox ou un Label ?

    Pourquoi ne pas passer par un InputBox ou éventuellement un UserForm ?

    Un ptit exemple vaut mieux qu'une longue explication

    Pièce jointe 25775

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

Discussions similaires

  1. [VBA-E] Comment avancer d'une ligne quand la précedente est pleine ?
    Par Trooper2 dans le forum Macros et VBA Excel
    Réponses: 21
    Dernier message: 19/01/2007, 20h56
  2. [VBA-E]Prise en compte ligne suivant condtition multiple
    Par baptbapt dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 04/08/2006, 13h05
  3. [Access] Max + 3 autres lignes suivantes
    Par Le Pharaon dans le forum Langage SQL
    Réponses: 8
    Dernier message: 28/07/2006, 15h44
  4. Comment allez vers la ligne suivante d'un dbgrid
    Par Karim1971 dans le forum Bases de données
    Réponses: 7
    Dernier message: 12/05/2006, 12h57
  5. VBA EXCEL - Sélection d'une ligne suivant saisie
    Par brethomeau dans le forum Macros et VBA Excel
    Réponses: 48
    Dernier message: 15/11/2005, 18h41

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