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

Excel Discussion :

couper / coller une ligne sous condition grâce à un formulaire


Sujet :

Excel

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2014
    Messages : 10
    Points : 1
    Points
    1
    Par défaut couper / coller une ligne sous condition grâce à un formulaire
    Bonjour tous le monde,

    Je suis nouveau, et il y a toujours une raison pour qu'on soit un nouveau, passionnée ou un peut dans la galère je dirais !
    Enfin venons en à mon problème.

    Je travail sur la réalisation d'un fichier me permettant de gérer des outils dans le cadre de ma licence!
    J'ai un fichier Excel avec 2 Userform (1er (UserForm2) qui me permet d'importer des infos grâce à une condition "Id outil" de la feuille "bdd1213" (différentes infos importer grâce à cette Id outil, Désignation, Famille, N° Contenant) et (2ieme UserForm1 "Formulaire) qui me permet de rentrée des informations supplémentaires grâce à des textbox et combobox et aussi d'y intégré les infos récupéré grâce a l'UserForm2 cité précédemment) quand je valide en appuyant sur le Commandboutton1 "affecter" sa me copie les infos du formulaire dans la feuille "bdd1314". Mais je voudrais que ca supprime la ligne sélectionné grâce à l'id outil de la feuille "bdd1213". pour ne plus pouvoir le choisir! 7
    Mais surtout que met infos ce mettent en haut et pas en bas et que les nouvelles infos viennent faire descendre la ligne existante tout en la laissant bien-sur !

    J'ai mis un fichier pour plus de compréhension de mon problème merci d'avance


    Feuille bdd1213 (la ou je copie les infos)
    Feuille bdd1314 (la ou je colle les infos)
    Feuille données (la ou sont les infos pour mes combobox)
    Feuille Accueil (accueil provisoire pour lance l'UserForm
    Fichiers attachés Fichiers attachés

  2. #2
    Nouveau Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2014
    Messages : 10
    Points : 1
    Points
    1
    Par défaut demande de code
    bonjour,

    J'aurais aimé savoir si quelqu'un aurait un code type pour couper une ligne et la coller, que j'adapterai à mon problème.

    Merci d'avance!

  3. #3
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Feuil1.Rows(3).Cut Feuil2.Range("A100")

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2014
    Messages : 10
    Points : 1
    Points
    1
    Par défaut
    Bonjour Mercatog et Marc-L

    Mercatog merci pour la ligne de code je vais voir ce que je peut en tirer et te tiens au courant!

    Marc-L je n'est pas vraiment compris au sujet de (avec l'icône # dédié pour le baliser, cf règles du forum), ça concernant le fichier joint ou mes messages? J'essaye d'appliqué au les conditions de ce forum, donc si jamais il y à quelque chose à modifier dans mes messages je le ferais!

    encore merci du coup de mains!

  5. #5
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut

    Re-bonjour !

    J'ai effacé mon message car caduque après la proposition de mercatog …

    Ce n'était juste qu'un rappel au nouveau concernant la publication de code, voir ici

  6. #6
    Nouveau Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2014
    Messages : 10
    Points : 1
    Points
    1
    Par défaut demande de code couper/coller
    Mercatog,

    ton code me supprime bien une ligne 3 sur ma feuille1.
    Mes ce que je voudrais c'est que la ligne qui est supprimé dans ma feuille "bdd1213" (feuille qui contient les données de bases) corresponde au n° indiqué dans ma "TxtBoxIDOUTILAFFECTER" de mon userform1 et qui est par la suite se coller dans ma feuille "bdd1314" (feuille qui résume les n° sélectionné) juste en dessous des en-têtes de mon tableau et que par la suite les nouvelles lignes viennent s'incrémenter au dessus de l'existante en la fessant descendre.

    En espérant avoir était claire dans mes attentes je te remercie pour ton aide!

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2014
    Messages : 10
    Points : 1
    Points
    1
    Par défaut code
    Re-bonjour Marc-L

    C'est noté je viens de regarder la vidéo qui présente comment publier du code par message, mes j'ai surtout appris qu'il fallait que je privilège le copier/coller de mon code plutôt que de mettre des pièces joints! je vais y faire attention la prochaine fois.

  8. #8
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Pour cela il te faut:
    1. Chercher la ligne X à couper
    2. Si trouvée, insérer une ligne vide en ligne 2 de la seconde feuille
    3. Enfin, couper la ligne X et la coller en ligne 2 créée de la seconde feuille


    Pour la 3 c'est Ok, Pour la 2 c'est facile Pour la 1, où en es tu?

  9. #9
    Nouveau Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2014
    Messages : 10
    Points : 1
    Points
    1
    Par défaut
    j'ai essayé mais j'arrive pas à trouvé comment me lancé

    j'ai beau prendre ca dans tout les sens, ces démotivant! Mais je continue j'y suis depuis hier donc je vais pas lâcher maintenant

  10. #10
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Exemple pour chercher le Mot Ali Baba dans la colonne A de Feuil1 et retourner le n° de ligne correspondante

    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
    Sub ChercH()
    Dim Tmp As String
    Dim c As Range
    Dim X As Long
     
    Tmp = "Ali Baba"
     
    Set c = Feuil1.Range("A:A").Find(Tmp, LookIn:=xlValues, LookAt:=xlWhole)
    If Not c Is Nothing Then
        X = c.Row
        Set c = Nothing
    End If
     
    If X > 0 Then
        'TRAITEMENR
     
    End If
    End Sub

  11. #11
    Nouveau Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2014
    Messages : 10
    Points : 1
    Points
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    If TxtBoxIDOUTILAFFECTER.SelText Then      
            Set LignTablo = Range("bdd1314").ListObject.ListRows.Add(AlwaysInsert:=True)
          Else: Bdd1213.Rows(2).Cut bdd1314.Range("B2")
       End If
    End With
    Voila ou j'en suis pour l'instant Mercatog j'essaye de comprendre bidouillé pour m'en sortir je vais y arrivé et j'espère que j'ai bien appliqué ce que disait Marc-L

    Encore merci pour ton aide Mercatog ca fait toujours plaisir d'être soutenu dans les moment ou l'on est complètement noyer dans les tonnes d'informations!

  12. #12
    Nouveau Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2014
    Messages : 10
    Points : 1
    Points
    1
    Par défaut
    Merci Mercatog,

    je vais essaye de me dépatouiller avec ce que tu ma donner et je te tiens au courant!

  13. #13
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Encore un petit coup de pouce

    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
    Sub Transfert()
    Dim Tmp As String
    Dim c As Range
    Dim X As Long
     
    Tmp = "04488" 'On va chercher 04488 dans la colonne B de Feuil1
    Set c = Feuil1.Range("B:B").Find(Tmp, LookIn:=xlValues, LookAt:=xlWhole)
    If Not c Is Nothing Then
        With Feuil3
            .Rows(2).Insert
            c.EntireRow.Copy .Range("A2")
            c.EntireRow.Delete
        End With
        Set c = Nothing
    End If
    End Sub

  14. #14
    Nouveau Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2014
    Messages : 10
    Points : 1
    Points
    1
    Par défaut
    C'est dans cette idée que je suis partie sauf que j'ai mis "TxtBoxIDOUTILAFFECTER" à la place d'ali baba vue que le N° est sélectionné par un premier Userform2 et transféré dans l'UserForm1 et j'ai mis la colonne B de la feuille "bdd1213" tableau source mais ca bloque avec le code que j'avais auparavant qui renvoyer la ligne séléctionné en fonction de l'id outil!


    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
    Private Sub CommandButton1_Click() 'bouton "EXPORTER"
    'déclaration des variables
    Dim i As Integer
    Dim cel As Range 'déclare la variable cel (CELlule)
     
    If Me.ComboBox1.Value = "" Then Exit Sub 'si la ComboBox1 est vide, sort de la procédure
    'recherche de la ligne ou figure l'id outil (combobox1) dans la feuille "bdd1213" de liste de stock outil
    UserForm1.Caption = "Gestionnaire stock outils"
    With Sheets("bdd1213").Columns(1)
        i = .Cells.Find(ComboBox1).Row
        'renvoie la valeur des cellules dans les différents controles de l'USF
        UserForm1.TxtBoxIDOUTILAFFECTER = .Cells(i, 1)
        UserForm1.TxtDesignation = .Cells(i, 2)
        UserForm1.TxtFamille = .Cells(i, 3)
        UserForm1.Txtprestation = .Cells(i, 5)
        UserForm1.TxtContenantstock = .Cells(i, 4)
      End With
    End Sub
     
    Private Sub UserForm_Initialize() 'lorsque l'USF2 s'initialise
    'déclaration des variables
    Dim j As Integer
    ComboBox1.Clear
    With Sheets("bdd1213")
    '"charge" dans la combobox toutes les valeurs de la feuille "bdd" colonne D de D2 à D65536 s'il le faut
        For j = 2 To .Columns(1).Find("*", , , , xlByColumns, xlPrevious).Row
             ComboBox1.AddItem .Range("B" & j)
        Next j
    End With
    'Nommer l'userform
    UserForm2.Caption = "Recherche d'un licencié de la saison précédente"
    End Sub
     
    Sub ChercH()
    Dim Tmp As String
    Dim c As Range
    Dim X As Long
     
    Tmp = "TxtBoxIDOUTILAFFECTER"
     
    Set c = bdd1213.Range("B:B").Find(Tmp, LookIn:=xlValues, LookAt:=xlWhole)
    If Not c Is Nothing Then
        X = c.Row
        Set c = Nothing
    End If
     
    If X > 0 Then
        'TRAITEMENT
    End If
     
    End With
    Unload UserForm2
    End Sub
    ou doit je mettre mon code dans l'userform1 ou l'userform2?

  15. #15
    Nouveau Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2014
    Messages : 10
    Points : 1
    Points
    1
    Par défaut
    Je comprend pas à chaque fois que j'adapte ton code au mien et que fait un test ca me renvoie un erreur d'exécution "91" objet ou variable introuvable je pense que ton code interagi si le miens vu que le mien importe les infos grâce à mon userform2 dans mon userform1, et donc par conséquent il est perdu

    Voici mon code pour l'UserForm2
    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
    Private Sub UserForm_Initialize() 'lorsque l'USF2 s'initialise
    'déclaration des variables
    Dim j As Integer
    ComboBox1.Clear
    With Sheets("bdd1213")
    '"charge" dans la combobox toutes les valeurs de la feuille "bdd" colonne D de D2 à D65536 s'il le faut
        For j = 2 To .Columns(1).Find("*", , , , xlByColumns, xlPrevious).Row
             ComboBox1.AddItem .Range("B" & j)
        Next j
    End With
    'Nommer l'userform
    UserForm2.Caption = "Recherche d'un licencié de la saison précédente"
    End Sub
     
    Private Sub CommandButton1_Click() 'bouton "EXPORTER"
    'déclaration des variables
    Dim i As Integer
    Dim cel As Range 'déclare la variable cel (CELlule)
     
    If Me.ComboBox1.Value = "" Then Exit Sub 'si la ComboBox1 est vide, sort de la procédure
    'recherche de la ligne ou figure l'id outil (combobox1) dans la feuille "bdd1213" de liste de stock outil
    UserForm1.Caption = "Gestionnaire stock outils"
    With Sheets("bdd1213").Columns(2)
        i = .Cells.Find(ComboBox1).Row
        'renvoie la valeur des cellules dans les différents controles de l'USF
        UserForm1.TxtBoxIDOUTILAFFECTER = .Cells(i, 1)
        UserForm1.TxtDesignation = .Cells(i, 2)
        UserForm1.TxtFamille = .Cells(i, 3)
        UserForm1.Txtprestation = .Cells(i, 5)
        UserForm1.TxtContenantstock = .Cells(i, 4)
     
    End With
    Unload UserForm2
    End Sub
     
    Private Sub CommandButton2_Click()
    Unload UserForm2
    End Sub

    et voici mon code pour l'UserForm1 ou j'ai intégré ton bout de code


    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
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    Private od As Object 'déclare la variable od (Onglet Données)
     
    Private Sub ComboBox2_Change()
    'au changement dans la ComboBox2 (N° contenant)
    Me.TextBoxactivite.Value = od.Cells(Me.ComboBox2.ListIndex + 2, 7) 'affiche dans la TextBoxactivite la valeur respective
     
    End Sub
     
    Private Sub UserForm_Initialize() 'lorsque l'USF1 est "lancé"
    'titre de l'userform
    UserForm1.Caption = "Gestionnaire stock outil"
    Set od = Sheets("données") 'définit l'onglet od
    'remplit la combobox 1 = Operateur
    ComboBox1.List = od.Range("F2:F6" & od.Range("A65536").End(xlUp).Row).Value
    ComboBox2.List = od.Range("B2:B8" & od.Range("A65536").End(xlUp).Row).Value
    End Sub
     
    Private Sub ComboBox1_Change() 'au changement dans la ComboBox1 (cours)
    Me.Txtchefdequipe.Value = od.Cells(Me.ComboBox1.ListIndex + 2, 8) 'affiche dans la TextBox15 la valeur respective
    End Sub
     
     
     
    Private Sub CommandButton3_Click() 'bouton "FERMER"
    MsgBox "Etes-vous certain de vouloir quitter le formulaire ?"
    Me.Hide
    Menu.Show
    End Sub
     
    Private Sub CommandButton4_Click() 'bouton "recherche d'un outils dans le stock"
    UserForm2.Show
    End Sub
     
    Private Sub CommandButton2_Click() 'Bouton "REINITIALISER"
    Unload Me
    UserForm1.Show
    End Sub
    Private Sub CommandButton1_Click() 'bouton "AFFECTER"
       If TxtIdoutilperdu = "" Then 'condition 1 : si la Textbox 1 n'est pas renseignée
          MsgBox ("Vous devez renseigner le champ : ID OUTIL PERDU ") 'message
       Me.TxtIdoutilperdu.SetFocus 'place le curseur dans le contrôle
          Exit Sub 'sort de la procédure
       End If
     
    If ComboBox2.Value = "" Then 'condition 2 : si aucune option n'est renseignée
          MsgBox ("Vous devez renseigner le champ : CONTENANT ") 'message
            Me.ComboBox2.SetFocus 'place le curseur dans le contrôle
        Exit Sub 'sort de la procédure
       End If
     
     
    If TxtBoxIDOUTILAFFECTER.Value = "" Then 'condition 3 : si aucune option n'est renseignée
          MsgBox ("Vous devez selectionner un ID outil dans le stock") 'message
            Me.TxtBoxIDOUTILAFFECTER.SetFocus 'place le curseur dans le contrôle
        Exit Sub 'sort de la procédure
       End If
     
    If Me.ComboBox1.Value = "" Then 'condition 4 : si la ComboBox1 n'est pas renseignée
        MsgBox "Vous devez renseigner le champ : OPERATEUR !" 'message
        Me.ComboBox1.SetFocus 'place le curseur dans le contrôle
        Exit Sub 'sort de la procédure
    End If 'fin de la condition 1
     
            'Initialise n à zéro (n = un compteur si tu veux)
            n = 0
     
            'Boucle de 1 à 2 pour les 2 OptSexe
            For Optionconflit = 1 To 2
                'Ici n vaut 2 si aucun des deux n'est côché
                n = n - (Controls("Optionconflit" & Optionconflit).Value = False)
                'Si n = 2 (pour deux contrôles donc et donc si 2 = qu'aucun contrôle n'a été côché)
                If n = 2 Then
                    'Message
                    MsgBox "Sélectionnez le type de conflit !"
                    'Sort de la procédure
                    Exit Sub
                End If
            Next Optionconflit
     
     
       If TxtBoxlieu.Value = "" Then 'condition 6 : si aucune option n'est renseignée
          MsgBox ("Vous devez renseigner le champ : LIEU ") 'message
            Me.TxtBoxlieu.SetFocus 'place le curseur dans le contrôle
        Exit Sub 'sort de la procédure
       End If
     
    If TxtBoxMsn.Value = "" Then 'condition 2 : si aucune option n'est renseignée
          MsgBox ("Vous devez renseigner le champ : MSN ") 'message
            Me.TxtBoxMsn.SetFocus 'place le curseur dans le contrôle
        Exit Sub 'sort de la procédure
       End If
     
    If ComboBox3.Value = "" Then 'condition 2 : si aucune option n'est renseignée
          MsgBox ("Vous devez renseigner le champ : ZONE ") 'message
            Me.ComboBox3.SetFocus 'place le curseur dans le contrôle
        Exit Sub 'sort de la procédure
       End If
     
    If Me.Txtchefdequipe.Value <> "" And Me.Txtcommentaire.Value = "" Then 'condition : si un outil est demander sans renseigné un commentaire
        MsgBox "Vous devez commenter le conflit !" 'message
        Me.Txtcommentaire.SetFocus 'place le curseur dans la Txtchefdequipe
        Exit Sub 'sort de la procédure
    End If 'fin de la condition
     
    Dim Tmp As String
    Dim c As Range
    Dim X As Long
     
    Tmp = "TxtBoxIDOUTILAFFECTER" 'On va chercher 04488 dans la colonne B de Feuil1
    Set c = Feuil1.Range("B:B").Find(Tmp, LookIn:=xlValues, LookAt:=xlWhole)
    If Not c Is Nothing Then
        With bd1314
            .Rows(2).Insert
            c.EntireRow.Copy .Range("B2")
            c.EntireRow.Delete
        End With
        Set c = Nothing
    End If
     
        With Sheets("bdd1314").ListObjects("suiviconso")
        If .ListRows.Count = 0 Then
            Range("bdd1314[[#Headers],[Nom]]").Offset(1, 0) = 1
            Range("bdd1314[[#Headers],[Nom]]").Offset(1, 0) = ""
        End If
     
        If .ListRows.Count = 1 And .ListRows(1).Range.Cells(1, 1) = "" Then
            Set LignTablo = Sheets("bdd1314").ListObjects("suiviconso").ListRows(1)
        Else
            Set LignTablo = Range("suiviconso").ListObject.ListRows.Add(AlwaysInsert:=True)
        End If
    End With
     
    With LignTablo.Range
        .Cells(1, 1) = TxtBoxIDDAHER
        .Cells(1, 2) = TxtBoxIDOUTILAFFECTER
        .Cells(1, 3) = TxtIdoutilperdu
        .Cells(1, 5) = TxtDesignation
        .Cells(1, 6) = TxtFamille
        .Cells(1, 7) = ComboBox1
        .Cells(1, 8) = Txtchefdequipe
        .Cells(1, 9) = ComboBox2
        .Cells(1, 10) = TextBoxactivite
        .Cells(1, 11) = Txtprestation
        .Cells(1, 12) = TxtBoxlieu
        .Cells(1, 13) = ComboBox3
        .Cells(1, 14) = TxtBoxMsn
        .Cells(1, 15) = TxtBoxdate
        .Cells(1, 17).Value = IIf(Optionconflit1.Value = True, "PERTE", "MAINTENANCE")
        .Cells(1, 18) = Txtcommentaire
     
    End With
    'on décharge le formulaire pour qu'il soit de nouveau initialisé lors de son prochain affichage
    Unload UserForm1
     
    End Sub
    si ca peut faire en sorte que vous compreniez mieux mon problème merci encore

  16. #16
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Il faudra faire la différence entre le CodeName de la feuille et son Nom

    Pour le passage (honnêtement, je n'ai pas les ressources de voir ton projet en entier, je m'en excuse)

    Mais pour le passage, regarde la différence
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Tmp = Me.TxtBoxIDOUTILAFFECTER.Value
    If Tmp <> "" Then
        Set c = Worksheets("bd1213").Range("B:B").Find(Tmp, LookIn:=xlValues, LookAt:=xlWhole)
        If Not c Is Nothing Then
            With Worksheets("bd1314")
                .Rows(2).Insert
                c.EntireRow.Copy .Range("B2")
                c.EntireRow.Delete
            End With
            Set c = Nothing
        End If
    End If

Discussions similaires

  1. Couper coller une ligne selon condition
    Par NEC14 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 03/05/2019, 08h50
  2. Répéter une ligne sous condition
    Par gwirionez dans le forum SAS Base
    Réponses: 6
    Dernier message: 16/03/2010, 08h56
  3. [XL-2003] Copier coller une ligne sous condition
    Par geraldferri dans le forum Excel
    Réponses: 12
    Dernier message: 21/04/2009, 11h17
  4. couper coller une ligne
    Par bosk1000 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 11/03/2009, 08h20
  5. Afficher une ligne sous condition
    Par gids01 dans le forum iReport
    Réponses: 4
    Dernier message: 25/09/2007, 13h48

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