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 :

Plage de cellules [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2011
    Messages : 34
    Par défaut Plage de cellules
    Bonjour,

    J'ai un tableau à deux colonnes :

    Code et Désignation

    J'aimerais que quand on tape un numéro dans la cellule Code sa mette la désignation correspondant sur la même ligne..

    Mais cela pour toutes les cellules

    Voici le code qui marche que pour la Cellule A1, j'aimerais qu'elle marche pour une plage de cellule de A1 à A100 par exemple...

    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
    Sub Macro1()
     
      Dim conn As ADODB.Connection
      Dim rs As ADODB.Recordset
      Dim fld As ADODB.Field
      Dim sql As String
      Dim valcel As String
     
        valcel = Feuil1.Range("A2" & i).Value
     
      'connect to MySQL server using MySQL ODBC 3.51 Driver
      Set conn = New ADODB.Connection
      conn.ConnectionString = "DRIVER={MySQL ODBC 5.1 Driver};" & "SERVER=192.168.253.128;" & " DATABASE=bddintranetpol;" & "UID=user_odbc;PWD=mdpusrodbc; OPTION=3"
      conn.Open
     
    'Cette requête marche !
    'conn.Execute "CREATE TABLE TestAdrien(ID int not null primary key, Nom varchar(20)," _& "Texte text, Date date, Temps time)"
     
    Set rs = New ADODB.Recordset
    With rs
         .ActiveConnection = conn
         .Open "select designation " _
         & "from produits_test " _
         & "where code_produit='" & valcel & "'"
     
         Feuil1.Range("B2").CopyFromRecordset rs
     
        .Close
    End With
     
     
    conn.Close
    Set rs = Nothing
    Set conn = Nothing
     
    End Sub
    Merci de votre aide.

  2. #2
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    Bonjour.

    Tu peux utiliser l'évènement Change de la feuille en question. Cela donne en modifiant ton code a minima
    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
    Private Sub Worksheet_Change(ByVal Target As Range)
     
    If Application.Intersect(Target, Me.Range("A1:A100")) Is Nothing Then Exit Sub
     
    Dim conn As ADODB.Connection
      Dim rs As ADODB.Recordset
      Dim fld As ADODB.Field
      Dim sql As String
      Dim valcel As String
     
      'connect to MySQL server using MySQL ODBC 3.51 Driver
      Set conn = New ADODB.Connection
      conn.ConnectionString = "DRIVER={MySQL ODBC 5.1 Driver};" & "SERVER=192.168.253.128;" & " DATABASE=bddintranetpol;" & "UID=user_odbc;PWD=mdpusrodbc; OPTION=3"
      conn.Open
     
    'Cette requête marche !
    'conn.Execute "CREATE TABLE TestAdrien(ID int not null primary key, Nom varchar(20)," _& "Texte text, Date date, Temps time)"
     
    Set rs = New ADODB.Recordset
    With rs
         .ActiveConnection = conn
         .Open "select designation " _
         & "from produits_test " _
         & "where code_produit='" & Target.Value & "'"
     
         Target.Offset(0, 1).CopyFromRecordset rs
     
        .Close
    End With
     
     
    conn.Close
    Set rs = Nothing
    Set conn = Nothing
     
     
    End Sub
    Dans le module associé à la feuille.

    Cordialement,

    PGZ

  3. #3
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2011
    Messages : 34
    Par défaut
    J'ai bien mis ce 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
    Private Sub Worksheet_Change(ByVal Target As Range)
     
    If Application.Intersect(Target, Me.Range("A1:A100")) Is Nothing Then Exit Sub
     
    Dim conn As ADODB.Connection
      Dim rs As ADODB.Recordset
      Dim fld As ADODB.Field
      Dim sql As String
      Dim valcel As String
     
      'connect to MySQL server using MySQL ODBC 3.51 Driver
      Set conn = New ADODB.Connection
      conn.ConnectionString = "DRIVER={MySQL ODBC 5.1 Driver};" & "SERVER=192.168.253.128;" & " DATABASE=bddintranetpol;" & "UID=user_odbc;PWD=mdpusrodbc; OPTION=3"
      conn.Open
     
    'Cette requête marche !
    'conn.Execute "CREATE TABLE TestAdrien(ID int not null primary key, Nom varchar(20)," _& "Texte text, Date date, Temps time)"
     
    Set rs = New ADODB.Recordset
    With rs
         .ActiveConnection = conn
         .Open "select designation " _
         & "from produits_test " _
         & "where code_produit='" & Target.Value & "'"
     
         Target.Offset(0, 1).CopyFromRecordset rs
     
        .Close
    End With
     
     
    conn.Close
    Set rs = Nothing
    Set conn = Nothing
     
     
    End Sub
    Donc si je me place dans la cellule A2, sa me met bien le désignation dans le cellulle B2 mais si je me met dans la cellule A3, sa met rien dans la cellule B3...

  4. #4
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    Re,

    Tu as mis ce code où, et tu l'exécutes comment?

    A+

    PGZ

  5. #5
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2011
    Messages : 34
    Par défaut
    C'est bon, j'avais pas mis dans le feuil1 ...

    Merci de ton aide

    Vraiment merci .

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

Discussions similaires

  1. VBA - Plage de cellules
    Par ZIED dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 26/01/2006, 06h49
  2. [VBA] Copier une plage de cellules dans un fichier fermé
    Par Invité dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 25/01/2006, 17h52
  3. [VBA] Parcourir une plage de cellule
    Par Dinytro dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 23/09/2005, 09h18
  4. [VBA-E] Image d'une plage de cellule
    Par flogreg dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 15/07/2004, 13h30
  5. [VBA-E] [Excel] Protection d'une plage de cellules
    Par fikou dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 20/11/2002, 12h28

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