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 :

Recherche de Boucle


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
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2012
    Messages : 11
    Par défaut Recherche de Boucle
    Bonjour, Voila j'ai crée un bouton permettant de remplir les informations sur des salariés... problème : qd j'en ai fini avec un, pour remplir les informations d'un autre, cela efface celui du premier.. j'aimerai donc trouver une boucle permettant de changer de ligne...
    voila donc mon travail :

    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
    Sub saisiedesidentifiantdusalarie()
     
    Dim reponse As String
    Dim nomsalarie As String
    Dim prenomsalarie As String
    Dim datenais As Date
    Dim lieunais As String
    Dim N°adresse As Long
    Dim rueadresse As String
    Dim villeadresse As String
    Dim codepostal As Long
    Dim numtelephone As Long
    Dim coordbanque As String
    Dim dombanque As String
    Dim poste As String
    Dim typecont As String
    Dim dateentre As Date
    Dim datesortie As Date
    Dim tauxsalaire As Single
     
     
     
    reponse = InputBox("Veuillez entrer le mot de passe", "Autorisation")
    If reponse <> "123456789" Then
     
    reponse = MsgBox("Mot de passe incorrect!", 0 + 48, "Erreur")
     
    Else
    L = 3
    C = 2
    nomsalarie = InputBox("Veuillez saisir le nom du salarié(e)", "Saisir le nom")
    Sheets("Feuille salarié").Cells(L, C) = nomsalarie
    prenomsalarie = InputBox("Veuillez saisir le prénom du salarié(e)", "Saisir le prénom")
    Sheets("Feuille salarié").Cells(L, C + 1) = prenomsalarie
    datenais = InputBox("Veuillez saisir la date de naissance du salarié(e)", "Saisir le date de naissance", "jj/mm/aaaa")
    Sheets("Feuille salarié").Cells(L, C + 2) = datenais
    lieunais = InputBox("Veuillez saisir le lieux de naissance du salarié(e)", "Saisir le lieu de naissance")
    Sheets("Feuille salarié").Cells(L, C + 3) = lieunais
    N°adresse = InputBox("Veuillez saisir le numéro de l'adresse du salarié(e)", "Saisir l'adresse")
    Sheets("Feuille salarié").Cells(L, C + 4) = N°adresse
    rueadresse = InputBox("Veuillez saisir la rue de l'adresse du salarié(e)", "Saisir l'adresse")
    Sheets("Feuille salarié").Cells(L, C + 5) = N°adresse
    villeadresse = InputBox("Veuillez saisir ville de l'adresse du salarié(e)", "Saisir l'adresse")
    Sheets("Feuille salarié").Cells(L, C + 6) = N°adresse
    codepostal = InputBox("Veuillez saisir le code poste de l'adresse salarié(e)", "Saisir l'adresse")
    Sheets("Feuille salarié").Cells(L, C + 7) = N°adresse
    numtelephone = InputBox("Veuillez saisir le numéro de téléphone du salarié(e)", "Saisir le téléphone", "xxxxxxxxxx")
    Sheets("Feuille salarié").Cells(L, C + 8) = numtelephone
    coordbanque = InputBox("Veuillez saisir les coordonnées bancaires du salairé(e)", "Saisir les coordonnées")
    Sheets("Feuille salarié").Cells(L, C + 9) = coordbanque
    dombanque = InputBox("Veuillez saisir le nom de la banque du salairé(e)", "Saisir la banque")
    Sheets("Feuille salarié").Cells(L, C + 10) = dombanque
    poste = InputBox("Veuillez saisir le poste du salairé(e)", "Saisir le poste")
    Sheets("Feuille salarié").Cells(L, C + 11) = poste
    typecont = InputBox("Veuillez saisir le type de contrat du salairé(e)", "Saisir le contrat")
    Sheets("Feuille salarié").Cells(L, C + 12) = typecont
    dateentre = InputBox("Veuillez saisir la date d'entrée du salairé(e)", "Saisir la date d'entrée", "jj/mm/aaaa")
    Sheets("Feuille salarié").Cells(L, C + 13) = dateentre
    datesortie = InputBox("Veuillez saisir la date de sortie du salairé(e)", "Saisir la date de sortie", "jj/mm/aaaa")
    Sheets("Feuille salarié").Cells(L, C + 14) = datesortie
    tauxsalaire = InputBox("Veuillez saisir le taux horaire  du salairé(e)", "Saisir le taux")
    Sheets("Feuille salarié").Cells(L, C + 12) = tauxsalaire
     
    End If
     
    End Sub

    Merci d'avance

  2. #2
    Membre Expert
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Par défaut
    J'ai une question. Dois-tu rentrer toi-même tous les noms ou veux-tu que chaque employé, lorsqu'il clique sur la macro rentre son nom et les infos ?

  3. #3
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 175
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Quand je vois ce code, je me demande pourquoi ne pas encoder tout simplement dans la feuille directement.
    N'est-ce pas plus long et fastidieux ?
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  4. #4
    Membre confirmé
    Inscrit en
    Janvier 2009
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 40
    Par défaut
    il faut vérifier si la cellule

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("Feuille salarié").Cells(L, C) = nomsalarie
    est vide

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    do while Sheets("Feuille salarié").Cells(L, C).value <> ""
       L = L +1
    Loop
    juste avant de saisir le nom du salarié

  5. #5
    Membre Expert
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Par défaut
    1) D'accord avec corona !

    2) Je te propose une solution "simple". Tu écris 0 dans la case "A1" et après le reste se fait automatiquement. Tu n'auras qu'a vérouiller ta feuille pour que personne ne touche à l'incrémentation qui s'y fera.

    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
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    Sub saisiedesidentifiantdusalarie()
     
    Dim reponse As String
    Dim nomsalarie As String
    Dim prenomsalarie As String
    Dim datenais As Date
    Dim lieunais As String
    Dim N°adresse As Long
    Dim rueadresse As String
    Dim villeadresse As String
    Dim codepostal As Long
    Dim numtelephone As Long
    Dim coordbanque As String
    Dim dombanque As String
    Dim poste As String
    Dim typecont As String
    Dim dateentre As Date
    Dim datesortie As Date
    Dim tauxsalaire As Single
     
    Dim loc As Range
    Dim off As Integer
     
     
    reponse = InputBox("Veuillez entrer le mot de passe", "Autorisation")
    If reponse <> "123456789" Then
        reponse = MsgBox("Mot de passe incorrect!", 0 + 48, "Erreur")
     
    Else
        With Worksheets("Feuille salarié")
            Set loc = .Range("B3")
            off = .Range("A1").Value
     
            nomsalarie = InputBox("Veuillez saisir le nom du salarié(e)", "Saisir le nom")
            loc = nomsalarie
     
            prenomsalarie = InputBox("Veuillez saisir le prénom du salarié(e)", "Saisir le prénom")
            loc.Offset(off, 1) = prenomsalarie
     
            datenais = InputBox("Veuillez saisir la date de naissance du salarié(e)", "Saisir le date de naissance", "jj/mm/aaaa")
            loc.Offset(off, 2) = datenais
     
            lieunais = InputBox("Veuillez saisir le lieux de naissance du salarié(e)", "Saisir le lieu de naissance")
            loc.Offset(off, 3) = lieunais
     
            N°adresse = InputBox("Veuillez saisir le numéro de l'adresse du salarié(e)", "Saisir l'adresse")
            loc.Offset(off, 4) = N°adresse
     
            rueadresse = InputBox("Veuillez saisir la rue de l'adresse du salarié(e)", "Saisir l'adresse")
            loc.Offset(off, 5) = N°adresse
     
            villeadresse = InputBox("Veuillez saisir ville de l'adresse du salarié(e)", "Saisir l'adresse")
            loc.Offset(off, 6) = N°adresse
     
            codepostal = InputBox("Veuillez saisir le code poste de l'adresse salarié(e)", "Saisir l'adresse")
            loc.Offset(off, 7) = N°adresse
     
            numtelephone = InputBox("Veuillez saisir le numéro de téléphone du salarié(e)", "Saisir le téléphone", "xxxxxxxxxx")
            loc.Offset(off, 8) = numtelephone
     
            coordbanque = InputBox("Veuillez saisir les coordonnées bancaires du salairé(e)", "Saisir les coordonnées")
            loc.Offset(off, 9) = coordbanque
     
            dombanque = InputBox("Veuillez saisir le nom de la banque du salairé(e)", "Saisir la banque")
            loc.Offset(off, 10) = dombanque
     
            poste = InputBox("Veuillez saisir le poste du salairé(e)", "Saisir le poste")
            loc.Offset(off, 11) = poste
     
            typecont = InputBox("Veuillez saisir le type de contrat du salairé(e)", "Saisir le contrat")
            loc.Offset(off, 12) = typecont
     
            dateentre = InputBox("Veuillez saisir la date d'entrée du salairé(e)", "Saisir la date d'entrée", "jj/mm/aaaa")
            loc.Offset(off, 13) = dateentre
     
            datesortie = InputBox("Veuillez saisir la date de sortie du salairé(e)", "Saisir la date de sortie", "jj/mm/aaaa")
            loc.Offset(off, 14) = datesortie
     
            tauxsalaire = InputBox("Veuillez saisir le taux horaire du salairé(e)", "Saisir le taux")
            loc.Offset(off, 15) = tauxsalaire
     
            .Range("A1").Value = off + 1
        End With
     
    End If
     
    End Sub
    Code loin d'être optimisé ! La solution de turbo_sophie est peut-être plus adéquate.

  6. #6
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut HEU
    bonsoir

    qu'est ce que c'est cette série de input box

    moi je dis que entre un point A et un point B il y a rien du tout

    essaie cette demo en pièce jointe tu va comprendre

    tu n'a qu'a cliquer sur le bouton qui est sur la page salarié

    au plaisir
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  7. #7
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    j'ai supposé qu'en ligne 1 et 2 il y a déjà des contenus (titres par exemple)

    J'ai adapté ton code en l'état, bien que comme souligné dans les messages précédents, la méthode de remplissage est fastidieuse.

    Il serait dans cas préférable de passer par un Userform intégrant l'ensemble des éléments que tu veux renseigner


    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
    67
    68
    69
    70
    71
     
     
    Sub saisiedesidentifiantdusalarie()
     
    Dim reponse As String
    Dim nomsalarie As String
    Dim prenomsalarie As String
    Dim datenais As Date
    Dim lieunais As String
    Dim N°adresse As Long
    Dim rueadresse As String
    Dim villeadresse As String
    Dim codepostal As Long
    Dim numtelephone As Long
    Dim coordbanque As String
    Dim dombanque As String
    Dim poste As String
    Dim typecont As String
    Dim dateentre As Date
    Dim datesortie As Date
    Dim tauxsalaire As Single
    Dim Cell As Range
     
    Sheets("Feuille salarié").Range("B65536").End(xlUp).Select
    Set Cell = ActiveCell.Offset(1, 0)
     
     
     
    reponse = InputBox("Veuillez entrer le mot de passe", "Autorisation")
    If reponse <> "123456789" Then
     
    reponse = MsgBox("Mot de passe incorrect!", 0 + 48, "Erreur")
     
    Else
     
    nomsalarie = InputBox("Veuillez saisir le nom du salarié(e)", "Saisir le nom")
    Cell = nomsalarie
    prenomsalarie = InputBox("Veuillez saisir le prénom du salarié(e)", "Saisir le prénom")
    Cell.Offset(0, 1) = prenomsalarie
    datenais = InputBox("Veuillez saisir la date de naissance du salarié(e)", "Saisir le date de naissance", "jj/mm/aaaa")
    Cell.Offset(0, 2) = datenais
    lieunais = InputBox("Veuillez saisir le lieux de naissance du salarié(e)", "Saisir le lieu de naissance")
    Cell.Offset(0, 3) = lieunais
    N°adresse = InputBox("Veuillez saisir le numéro de l'adresse du salarié(e)", "Saisir l'adresse")
    Cell.Offset(0, 4) = N°adresse
    rueadresse = InputBox("Veuillez saisir la rue de l'adresse du salarié(e)", "Saisir l'adresse")
    Cell.Offset(0, 5) = N°adresse
    villeadresse = InputBox("Veuillez saisir ville de l'adresse du salarié(e)", "Saisir l'adresse")
    Cell.Offset(0, 6) = N°adresse
    codepostal = InputBox("Veuillez saisir le code poste de l'adresse salarié(e)", "Saisir l'adresse")
    Cell.Offset(0, 7) = N°adresse
    numtelephone = InputBox("Veuillez saisir le numéro de téléphone du salarié(e)", "Saisir le téléphone", "xxxxxxxxxx")
    Cell.Offset(0, 8) = numtelephone
    coordbanque = InputBox("Veuillez saisir les coordonnées bancaires du salairé(e)", "Saisir les coordonnées")
    Cell.Offset(0, 9) = coordbanque
    dombanque = InputBox("Veuillez saisir le nom de la banque du salairé(e)", "Saisir la banque")
    Cell.Offset(0, 10) = dombanque
    poste = InputBox("Veuillez saisir le poste du salairé(e)", "Saisir le poste")
    Cell.Offset(0, 11) = poste
    typecont = InputBox("Veuillez saisir le type de contrat du salairé(e)", "Saisir le contrat")
    Cell.Offset(0, 12) = typecont
    dateentre = InputBox("Veuillez saisir la date d'entrée du salairé(e)", "Saisir la date d'entrée", "jj/mm/aaaa")
    Cell.Offset(0, 13) = dateentre
    datesortie = InputBox("Veuillez saisir la date de sortie du salairé(e)", "Saisir la date de sortie", "jj/mm/aaaa")
    Cell.Offset(0, 14) = datesortie
    tauxsalaire = InputBox("Veuillez saisir le taux horaire du salairé(e)", "Saisir le taux")
    Cell.Offset(0, 15) = tauxsalaire
     
    End If
     
    End Sub

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

Discussions similaires

  1. Recherche par boucle et condition
    Par shahir dans le forum Langage
    Réponses: 2
    Dernier message: 03/04/2014, 23h46
  2. Débutante recherche conseils : boucles
    Par Elragail dans le forum Débuter
    Réponses: 14
    Dernier message: 14/02/2014, 22h14
  3. Réponses: 1
    Dernier message: 06/03/2008, 10h53
  4. Réponses: 13
    Dernier message: 09/04/2006, 21h57
  5. recherche dans une base de donnée+boucle
    Par eric205 dans le forum Bases de données
    Réponses: 8
    Dernier message: 15/03/2005, 21h14

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