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 :

Difficulté pour adapter mon code copier-coller [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre éclairé
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Décembre 2011
    Messages
    571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2011
    Messages : 571
    Par défaut Difficulté pour adapter mon code copier-coller
    Salut le forum

    Je viens sollicité votre aide pour adapté mon code.
    Avec le code ci-dessous, je copie les données de mon usf vers la feuille PARAMETRE.
    Voici les difficultés rencontrées:
    - je constate que le collage ne se fait pas au fur et à mesure (le collage se fait toujours sur la même ligne ce qui n'est pas bon)
    Cela ne me permet de vérifier la 2è condition qui est que lorsque dans la plage B6:B il y'a déjà la valeur de la textbox1, que le message suivant apparaisse:"Ce user est déjà enregistré"
    ci-dessous le 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
    Private Sub bt_add_Click()
    Dim TB(6) As String
    Dim LigneVide As Long, i As Integer
     
    'verification des identifiants
     
    If Application.WorksheetFunction.CountIf(Sheets("PARAMETRE").Range("B6:B" & Sheets("PARAMETRE").Range("B65536").End(xlUp).Row), TextBox1.Value > 0) Then
    MsgBox ("Ce user est déjà enregistré")
    Exit Sub
    End If
     
    With Sheets("PARAMETRE")
    'copie des cellules
    TB(1) = Me.TextBox1.Value 'date
    TB(2) = Me.TextBox2.Value 'Cpte
    TB(3) = Me.TextBox3.Value 'Intitulé
    TB(4) = Me.TextBox4.Value 'Téléphone
    TB(5) = Me.TextBox5.Value 'ref pièce
    TB(6) = Me.TextBox6.Value 'Code agent
     
    End With
     
    'Avec la feuille de destination
    With Sheets("PARAMETRE")
    'selection de la première cellule vide
    LigneVide = .Cells(Rows.Count, 2).End(xlUp).Row
    If LigneVide > 1 Then LigneVide = LigneVide + 1
    'Copie les données
    For i = 1 To 6
    .Cells(LigneVide, i + 1) = TB(i)
    Next i
     
    End With
    End Sub

  2. #2
    Invité de passage
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Août 2014
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs

    Informations forums :
    Inscription : Août 2014
    Messages : 1
    Par défaut
    Je n'arrive pas à comprendre à quoi sert ta ligne
    if ligne vide>1 then lignevide = lignevide + 1
    Sinon à écrire dans la ligne suivant la première ligne vide trouvée. Supprime cette ligne de code pour essayer.

  3. #3
    Membre Expert Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Par défaut
    Bonsoir le fil, bonsoir le forum,

    Peut-être comme ça :

    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
    Private Sub bt_add_Click()
    Dim P As Object 'déclare la variable P (onglet Parametre)
    Dim DL As Integer 'déclare la variable DL (Dernière Ligne)
    Dim PL As Range 'déclare la variable PL (PLage)
    Dim I As Integer 'déclare la variable I (Incrément)
     
    Set P = Sheets("PARAMETRE") 'définit l'onglet P
    DL = P.Cells(Application.Rows.Count, 2).End(xlUp).Row 'définit la dernière ligne éditée DL de la colonne 2 (=B) de l'onglet P
    Set PL = P.Range("B2:B" & DL) 'définit la plage PL
    'verification des identifiants
    If Application.WorksheetFunction.CountIf(PL, TextBox1.Value) > 0 Then
        MsgBox ("Ce user est déjà enregistré")
        Exit Sub
    End If
    For I = 1 To 6 'boucle sur les 6 textboxes
        'envoie la valeur de la textbox dans la cellule ligne DL+1, colonne I+1 de l'onglet P
        P.Cells(DL + 1, I + 1).Value = Me.Controls("TextBox" & I).Value
    Next I
    End Sub

  4. #4
    Membre éclairé
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Décembre 2011
    Messages
    571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2011
    Messages : 571
    Par défaut
    Salut Thautheme et typoussin

    Merci pour vos solutions qui fonctionnent bien.
    J'ai beaucoup aimé le code de Thautheme qui est très simple.

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

Discussions similaires

  1. [XL-2007] Besoin d'aide pour améliorer mon code copier-coller
    Par capi81 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 31/07/2014, 16h14
  2. [VBA-E] Aide pour éxécuter mon code en cliquant sur un bouton dans excel.
    Par pauletta22 dans le forum Macros et VBA Excel
    Réponses: 53
    Dernier message: 29/05/2006, 13h47
  3. Difficultés pour arrêter mon pc sous debian
    Par jejerome dans le forum Administration système
    Réponses: 6
    Dernier message: 31/03/2006, 10h18
  4. Je besoin d'aide pour terminer mon code
    Par Paulinho dans le forum C++
    Réponses: 7
    Dernier message: 06/11/2005, 23h30

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