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 :

De quelle ligne vient ma variable ? [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre très actif
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    186
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 186
    Par défaut De quelle ligne vient ma variable ?
    Bonjour à tous et toutes

    Je profite de ce nouveau post pour remercier tous ceux qui ont répondu par le passé à mes questions !

    Je poursuis dans mes reflexions

    Dans le code ci dessous, je récupère une variable dans la listBox1

    Cette variable appelée "matertransfert" correspond à la première colonne d'un "catalogue" de matériels

    Je réussis grâce au code ci dessous à en transférer le contenu dans la première ligne vide de la feuille active (après avoir fermé le fichier Novomaterbase)

    Ce que je souhaite désormais, c'est récupérer les autres données de mon catalogue (le fichier "novomaterbase") associées au matériel de la variable "matertransfert".

    J'imagine la procédure suivante

    Récupérer le numéro de ligne (x) d'où vient le matériel dont le nom est dans la variable "matertransfert"
    > C'est là où je coince un peu
    A partir de ce numéro de ligne, aller chercher une à une les valeurs des colonnes B(x), C(x), D(x) ...... et les stocker dans des variables
    Puis, rebasculer ces différentes variables dans les colonnes correspondantes de la "Worksheets("Novomaterbase")"

    Est ce jouable ?




    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub CommandButton1_Click()
    If ListBox1.ListIndex = -1 Then Exit Sub
    Dim matertransfert As String
    matertransfert = ListBox1.List(ListBox1.ListIndex)
     
    Workbooks("NovoMaterBAse.xls").Close SaveChanges:=False
    ActiveWindow.WindowState = xlMaximized
    Unload UserForm1
    Dim LaDerniere As Long
    LaDerniere = Range("B65536").End(xlUp).Row
    Dim LaCase As String
    LaCase = "B" & LaDerniere + 1
    Worksheets("Novomaterbase").Range(LaCase) = matertransfert
    Merci par avance pour votre aide

    Daniel

  2. #2
    Membre Expert Avatar de Jean-Pierre49
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2007
    Messages
    659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2007
    Messages : 659
    Par défaut
    Un bout de code pour démarer


    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
    Dim matertransfert As String
    matertransfert = "Toto"
     
    Dim C As Range
    Dim Plage As Range
    Dim C1 As Range
    Dim CompA As Integer
    Dim R As Long
     
    Set Plage = Range("A1:A" & Range("A" & Rows.Count).End(xlUp).Row)
     
    For Each C In Plage
        If C.Value = matertransfert Then
            R = C.Row
            Set C1 = C
            For CompA = 1 To 20
                C1.Offset(0, CompA).Value = CompA
            Next CompA
        End If
    Next C
    Bon courage

  3. #3
    Membre très actif
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    186
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 186
    Par défaut
    Merci Jean Pierre pour cette réponse

    Je vais la regarder

    De mon coté, j'ai poursuivi dans la première voie

    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 CommandButton1_Click()
    If ListBox1.ListIndex = -1 Then Exit Sub
    Dim matertransfert As String
    matertransfert = ListBox1.List(ListBox1.ListIndex)
    Dim L As Integer
    Dim N As String
    N = matertransfert
    MsgBox (N)
    L = Worksheets("Novomaterbase").Range("B1:B65536").Find(N, lookat:=xlWhole).Row
    MsgBox (L)
     
    Workbooks("NovoMaterBAse.xls").Close SaveChanges:=False
    ActiveWindow.WindowState = xlMaximized
    Unload UserForm1
    Dim LaDerniere As Long
    LaDerniere = Range("B65536").End(xlUp).Row
    Dim LaCase As String
    LaCase = "B" & LaDerniere + 1
    Worksheets("Novomaterbase").Range(LaCase) = matertransfert
    J'ai une erreur 91 dans la ligne 9 ... Erreur de syntaxe ?

    A bientot

    Daniel

  4. #4
    Membre Expert Avatar de Jean-Pierre49
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2007
    Messages
    659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2007
    Messages : 659
    Par défaut
    Je n'ai pas d'érreur chez moi avec la ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    L = Worksheets("Novomaterbase").Range("B1:B65536").Find(N, lookat:=xlWhole).Row

  5. #5
    Membre très actif
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    186
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 186
    Par défaut
    Re bonjour

    Le texte de l'erreur est "Variable objet ou variable de bloc With non définie"

    Je cherche

    Daniel

  6. #6
    Membre Expert Avatar de Jean-Pierre49
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2007
    Messages
    659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2007
    Messages : 659
    Par défaut
    J'ai reproduit ton erreur

    C'est quand elle ne trouve pas

    regarde et tu dis

  7. #7
    Membre très actif
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    186
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 186
    Par défaut
    Re Re

    Elle ne trouve pas ....

    Merci pour cet indice

    Je me faisais des noeuds dans mes classeurs et mes feuilles

    J'avais d'ailleurs des feuilles qui portaient le meme nom dans mes deux classeurs, j'ai donc fait quelques modifs

    J'ai le classeur NovoMaterBase.xls avec la feuille BaseListe
    et le classeur NovoMaterModele.xls avec la feuille ListeMater

    Voici le code "modifié" et qui ne plante plus.


    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
    Private Sub CommandButton1_Click()
    If ListBox1.ListIndex = -1 Then Exit Sub
    Dim matertransfert As String
    matertransfert = ListBox1.List(ListBox1.ListIndex)
    Dim L As String
    Dim N As String
    N = matertransfert
    MsgBox (N)
    L = Workbooks("NovoMaterbase.xls").Worksheets("BaseListe").Range("B3:B1300").Find(N, lookat:=xlWhole).Row
    MsgBox (L)
    Workbooks("NovoMaterBAse.xls").Close SaveChanges:=False
    ActiveWindow.WindowState = xlMaximized
    Unload UserForm1
    Dim LaDerniere As Long
    LaDerniere = Range("B65536").End(xlUp).Row
    Dim LaCase As String
    LaCase = "B" & LaDerniere + 1
    MsgBox (LaCase)
    Workbooks("Novomatermodele.xls").Worksheets("ListeMater").Range(LaCase) = matertransfert
     
     
    End Sub
    Merci pour ton aide

    Daniel

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

Discussions similaires

  1. [VBA-E] find oui mais quelle ligne ?
    Par SpaceFrog dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 16/10/2006, 15h03
  2. Formulaire avec nombre de lignes de saisie variable
    Par NadègeG dans le forum Langage
    Réponses: 9
    Dernier message: 03/10/2006, 08h10
  3. [VBA-E]insérer une ligne à un emplacement variable
    Par DomBourti dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 27/04/2006, 17h07
  4. supprimer lignes d'une variable session tableau sauf 1
    Par epeichette dans le forum Langage
    Réponses: 1
    Dernier message: 30/03/2006, 17h41
  5. Savoir dans quelle ligne de code je me situe
    Par FrankOVD dans le forum Langage
    Réponses: 4
    Dernier message: 08/12/2005, 22h35

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