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 :

une action dans excel peut elle créer une ligne de code dans VBA?


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    juin 2008
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juin 2008
    Messages : 44
    Points : 17
    Points
    17
    Par défaut une action dans excel peut elle créer une ligne de code dans VBA?
    Bonjour, je voudrais savoir si par macro il est possible d'ajouter une ligne de code dans VBA?

  2. #2
    Membre éprouvé
    Avatar de JackOuYA
    Inscrit en
    juin 2008
    Messages
    1 040
    Détails du profil
    Informations forums :
    Inscription : juin 2008
    Messages : 1 040
    Points : 1 191
    Points
    1 191
    Par défaut
    bonsoir,

    oui.
    JacqueS.

    Ps: je ne télécharge les piéces jointes qu'en dernier recours .(et encore...)

    Pour devenir mon ami laissez moi un message

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    juin 2008
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juin 2008
    Messages : 44
    Points : 17
    Points
    17
    Par défaut
    ... et si oui, comment faire car avec l'enregistrement de macro je n'ai pas réussi à voir...

  4. #4
    Membre éprouvé
    Avatar de JackOuYA
    Inscrit en
    juin 2008
    Messages
    1 040
    Détails du profil
    Informations forums :
    Inscription : juin 2008
    Messages : 1 040
    Points : 1 191
    Points
    1 191
    JacqueS.

    Ps: je ne télécharge les piéces jointes qu'en dernier recours .(et encore...)

    Pour devenir mon ami laissez moi un message

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    juin 2008
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juin 2008
    Messages : 44
    Points : 17
    Points
    17
    Par défaut
    J'ai essayer de déchiffrer le fichier que tu m'as indiqué mais pour moi c'est pas forcément évident!
    si tu pouvais m'expliquer les grandes lignes et comment m'y prendre ou un exemple concret...
    c'est un peu juste la réponse "oui" ou un lien par rapport à toutes les excellentes réponses que j'ai pu avoir jusqu'ici sur ce site...

  6. #6
    Membre éprouvé
    Avatar de JackOuYA
    Inscrit en
    juin 2008
    Messages
    1 040
    Détails du profil
    Informations forums :
    Inscription : juin 2008
    Messages : 1 040
    Points : 1 191
    Points
    1 191
    Par défaut
    Bonsoir,

    la réponse est à la mesure de la question .. vu le peu d'élément que tu nous donne, sur ton avancement , sur ton but la seule solution pour te répondre c'est de copier le tutoriel dont je t'ai donné le liens dans cette discussion ..

    à question vague , réponse ...

    la modification d'un code VBA par un code VBA n'est pas une opération courante et simple, avec tous les problémes de sécurités que cela entraine...

    donc explique plutôt pourquoi tu tiens à modifier cette macro par du code
    JacqueS.

    Ps: je ne télécharge les piéces jointes qu'en dernier recours .(et encore...)

    Pour devenir mon ami laissez moi un message

  7. #7
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    novembre 2003
    Messages
    18 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : novembre 2003
    Messages : 18 959
    Points : 55 106
    Points
    55 106
    Billets dans le blog
    128
    Par défaut
    Bonsoir,

    Je plussoie JackOuYA

    il y a souvent moyen de se passer de cette écriture de code par du code...

    La balle est dans ton camp pour nous expliquer ce que tu souhaites réaliser (la finalité...). Nous pourrons t'aider au mieux.

    Bonne continuation
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    juin 2008
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juin 2008
    Messages : 44
    Points : 17
    Points
    17
    Par défaut
    je vais m'expliquer un peu...je ne pensais pas que ça pouvait être aussi compliqué...
    J'arrive à la fin de la création d'une base de données dont le principe est de répertorier des projets en fonction d'une liste de clients. la saisie est automatisée pour que l'utilisateur n'aie qu'à rentré le minimum d'information.
    J'ai donc un Userform avec plusieurs textbox et combobox.
    Les données du Userform sont mises sur un tableau récapitulatif, rangé par département, un des champs du Userform.

    Mon problème c'est qu'il y a aussi un mode ajout de client. le fichier marche pour tous les clients déjà rentrés mais pas pour ceux à venir. Pour comprendre le problème sur mon fichier faire ce petit test...

    dans le userform rempli dans l'ordre

    "projet"
    "localisation"
    "Gironde"
    "Conseil Général"
    "Conseil général"

    la ligne se créée bien dans l'onglet "récapitulatif"

    Maintenant essaies avec :

    "projet"
    "localisation"
    "Corrèze"
    "Mairie de Saint Pantaleon de Larche"
    "Autre"

    On ne récupère que les données du userform...

    voilà maintenant les lignes de codes qui me posent problème:

    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
     
    With Sheets("Liste des organismes")
            If Organisme = "DIR SO" Then
            .Range("D69 : H69").Copy
            Sheets("Liste projets").Range("A65535").End(xlUp).Offset(0, 9).PasteSpecial Paste:=xlValues
                Application.CutCopyMode = False
            End If
     
     
            If Organisme = "Conseil Général" Then
            For i = 7 To 34
                If .Range("C" & i).Value = Département Then
                    .Range("D" & i & ":H" & i).Copy
                    Sheets("Liste projets").Range("A65535").End(xlUp).Offset(0, 9).PasteSpecial Paste:=xlValues
                    Application.CutCopyMode = False
                End If
            Next i
            End If
     
     
            For n = 76 To 200
                If .Range("C" & n).Value = Sheets("champs pour listes").Range("A1").Value Then
                    .Range("D" & n & ":H" & n).Copy
                    Sheets("Liste projets").Range("A65535").End(xlUp).Offset(0, 9).PasteSpecial Paste:=xlValues
                    Application.CutCopyMode = False
                End If
            Next n
     
    End With
    .

    en gros le dernier paragraphe ne fonctionne pas je voulais donc rajouter une ligne de code en copiant sur les paragraphes qui se fasse à chaque ajout de client...

    le fichier en pièce jointe...merci
    Fichiers attachés Fichiers attachés

  9. #9
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    novembre 2003
    Messages
    18 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : novembre 2003
    Messages : 18 959
    Points : 55 106
    Points
    55 106
    Billets dans le blog
    128
    Par défaut
    Je ne vois toujours pas pourquoi tu as besoin d'ajouter cela par code...

    Sauf si tu ne dis pas tout et que ton appli est déjà chez le client et que tu n'as plus la main dessus...

    Est-ce cela?
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    juin 2008
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juin 2008
    Messages : 44
    Points : 17
    Points
    17
    Par défaut
    mon problème c'est que la liste des clients (ou organismes, c'est la même chose) n'est pas finie.mon fichier fonctionne pour tous les éléments déjà rentrés mais le problème c'est que pour l'ajout de client, de nouveaux éléments rentre dans cette liste, et de la manière dont je m'y suis pris :

    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
    If Organisme = "DIR SO" Then
            .Range("D69 : H69").Copy
            Sheets("Liste projets").Range("A65535").End(xlUp).Offset(0, 9).PasteSpecial Paste:=xlValues
                Application.CutCopyMode = False
            End If
     
     
            If Organisme = "Conseil Général" Then
            For i = 7 To 34
                If .Range("C" & i).Value = Département Then
                    .Range("D" & i & ":H" & i).Copy
                    Sheets("Liste projets").Range("A65535").End(xlUp).Offset(0, 9).PasteSpecial Paste:=xlValues
                    Application.CutCopyMode = False
                End If
            Next i
            End If
     
     
            For n = 76 To 200
                If Sheets("Liste des organismes").Range("C" & n).Value = Organisme Then
                    .Range("D" & n & ":H" & n).Copy
                    Sheets("Liste projets").Range("A65535").End(xlUp).Offset(0, 9).PasteSpecial Paste:=xlValues
                    Application.CutCopyMode = False
                End If
            Next n
    Dir SO et conseil général sont des éléments déjà rentrés, dans le troisième paragraphe j'essaie de prendre en compte les éléments qui peuvent rentrer dans cette liste, MAIS ça ne marche pas...

    ...du coup je me suis dit qu'il existait peut etre une manière pour ajouter une ligne de code dans VBA, lors de la procédure d'ajout client...

  11. #11
    Membre éprouvé
    Avatar de JackOuYA
    Inscrit en
    juin 2008
    Messages
    1 040
    Détails du profil
    Informations forums :
    Inscription : juin 2008
    Messages : 1 040
    Points : 1 191
    Points
    1 191
    Par défaut
    Bonsoir,

    J'ai toujours rien compris (c'est comme dans l'autre discussion) à ce que tu veux faire .. mais tu dis vouloir générer des lignes de codes je trouve vraiment illogique que tu sache quoi écrire dans ces lignes que te manque t'il comme informations pour effectuer l directement les actions que tu réserves à ces lignes plutôt que les écrire.
    JacqueS.

    Ps: je ne télécharge les piéces jointes qu'en dernier recours .(et encore...)

    Pour devenir mon ami laissez moi un message

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    juin 2008
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juin 2008
    Messages : 44
    Points : 17
    Points
    17
    Par défaut
    Est ce que tu as essayé les deux tests que j'avais indiqué?

    pour le deuxième client : mairie de Saint pantaléon de Larche, les informations disponibles dans l'onglet liste des organismes ne sont pas copiées et ajouter à celle rentré par le userform ajout d'un projet.

    en gros si l'utilisateur utilise l'onglet ajout client, un nouveau client et ses informations figureront dans l'onglet liste des organismes, il sera disponible dans le userform ajout d'un nouveau projet mais dans le tableau récapitulatif on ne verra pas ces données client.

    quand je disais que je voulais ajouter des lignes de codes, c'était lors de la procédure d'ajout de client (userform2), avec simplement un nom et un numéro de ligne qui change, mais ça n'est peut-être pas la bonne solution...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    If Organisme = "?????????" Then
            .Range("D?? : H??").Copy
            Sheets("Liste projets").Range("A65535").End(xlUp).Offset(0, 9).PasteSpecial Paste:=xlValues
                Application.CutCopyMode = False
            End If
    j'espère que je me suis mieux expliquer...

  13. #13
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    novembre 2003
    Messages
    18 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : novembre 2003
    Messages : 18 959
    Points : 55 106
    Points
    55 106
    Billets dans le blog
    128
    Par défaut
    Avec un peu de logique et de bon sens, tu te rendrais compte que si on doit ajouter des lignes de codes à chaque ajout client, cela va devenir ingérable avec 1000 clients... Non?

    Le mieux, ce serait que tu exprimes, en français, ce que tu souhaites réaliser, car manifestement, on n'a pas compris grand chose à ce que tu veux obtenir.

    A partir de là, nous pourrons te guider vers une solution pratique
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

Discussions similaires

  1. Créer une occurrence d'Excel dans la version souhaitée
    Par Golard dans le forum Développement Office System
    Réponses: 1
    Dernier message: 23/04/2015, 16h06
  2. créer dans excel un bouton avec une macro personnalisée
    Par deubelte dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 20/11/2008, 16h01
  3. Peut-on créer une page internet via JBuilder?
    Par Xavier dans le forum JBuilder
    Réponses: 2
    Dernier message: 17/02/2005, 21h21

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