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 :

Debutante code vba


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Femme Profil pro
    autres
    Inscrit en
    Février 2019
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : autres

    Informations forums :
    Inscription : Février 2019
    Messages : 43
    Par défaut Debutante code vba
    Bonjour,
    Je cherche a ecrire quelque chose en vba, J'ai mon tableau et dans une autre feuille je voudrais faire en sorte qu'il m'ecrive le nom et la ligne ou la date du jour >= a ma Date Limite (colonne D) ET que ma ligne ne soit pas colorié puis je met ma condition.
    J'ai déjà parcouru et lu beaucoup de pages mais etant novice ce n'est pas facile.
    Dans un premier temp je cherche a comprendre pour la couleur que dois je lui dire si ma ligne n'est pas colorié?

    voici le début de mon code, je sais qu'il y'a des fautes, ne me jugez pas aidez moi svp

    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
    'Sub est le debut de la procedure
    Sub Rappel()
    'Dim est une variable
    Dim Onglet As Worksheet
    Dim DateJour, DateLimite
    Dim Ligne, Couleur
     
    'DateJour = A la date du systeme
    DateJour = "28/02/2019"
    DateLimite = Range("D8").Value
    Ligne = Rows(5)
    Couleur = Cells.Interior.Color
     
     
    'For Each Onglet In Worksheets
    'Couleur = 0 = vrai
    If DateJour >= DateLimite And Couleur = False Then
        MsgBox "Vrai"
    Else
        MsgBox "Faux"
    End If
    'Next
    End Sub
    Images attachées Images attachées  

  2. #2
    Membre averti
    Femme Profil pro
    autres
    Inscrit en
    Février 2019
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : autres

    Informations forums :
    Inscription : Février 2019
    Messages : 43
    Par défaut Code 2
    Et alors dans un 2ème temp j'aimerais qui lise ma ligne.
    J'ai fait sur un autre module afin de le comprendre avant de l'ajouter a mon code, j'ai trouvé ceci :
    QUe signifie ce F5 dans numero de ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub TestLigne()
        'Déclaration des variables
        Dim nom, prenom, age, numero_ligne As Integer, nb_lignes
        nb_lignes = WorksheetFunction.CountA(Range("A:A")) 'Fonction NBVAL
     
        'Valeurs des variables
        numero_ligne = Range("F5") + 1
        nom = Cells(numero_ligne, 1)
        prenom = Cells(numero_ligne, 2)
        age = Cells(numero_ligne, 3)
     
        'Boîte de dialogue
        MsgBox "Num = " & numero_ligne & Chr(10) & "Nom = " & nom & Chr(10) & "Prenom = " & prenom & Chr(10) & "Age = " & age & Chr(10) & nb_lignes
    End Sub
    Il avait l'aire de fonctionner, j'en comprend à peu près les lignes, ce que je ne comprend pas c'est que vu que j'ai mis un titre et fusionner des colonnes il faut qu'il lise plus loin, à partir de la ligne 4. Que dois je changer?
    Images attachées Images attachées  

  3. #3
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 478
    Par défaut
    Bonjour,
    Citation Envoyé par ashpo4 Voir le message
    Bonjour,
    Je cherche a ecrire quelque chose en vba, ...
    J'ai déjà parcouru et lu beaucoup de pages mais etant novice ce n'est pas facile.
    C'est toujours difficile de s'en sortir en piochant des infos et des codes ça et là.

    Je te conseille de commencer par suivre entièrement un cours d'auto-formation, c'est un peu long mais ça évite beaucoup de galères.
    Voici un excellent cours gratuit pour débutants (et plus si affinités) : https://bidou.developpez.com/article/VBA/

  4. #4
    Membre averti
    Femme Profil pro
    autres
    Inscrit en
    Février 2019
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : autres

    Informations forums :
    Inscription : Février 2019
    Messages : 43
    Par défaut
    Bonsoir,
    On m'a déjà donné ce cours, j'y ai jeté un oeil et lu ce qui pouvait m’intéresse mais justement il y'a des syntaxes ou autres que je ne comprend pas.
    J'aimerais que quelqu'un m'aide a ameliorer mon code et me dise si je suis sur la bonne voie et non toujours me donné des cours à lire.

    Merci

  5. #5
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 478
    Par défaut
    Citation Envoyé par ashpo4 Voir le message
    On m'a déjà donné ce cours, j'y ai jeté un oeil et lu ce qui pouvait m’intéresse
    Je trouve ce cours très bien fait mais comme je t'ai dit précédemment, il ne s'agit pas d'y jeter un œil mais il faut le suivre entièrement en partant du début. Tout y est clairement expliqué mais si tu brules les étapes c'est normal que certaines choses t’échappent !
    Il est relativement condensé, il faut donc y aller pas à pas, chaque mot a son importance.

  6. #6
    Membre expérimenté
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2018
    Messages
    254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2018
    Messages : 254
    Par défaut
    Bonjour,

    Je me permet de rebondir sur ce que dit Patrice ().

    Ayant appris par moi même le VBA, les cours de ce type sont très important. Ils te permettent d'apprendre les conventions et ainsi comprendre plus facilement les codes que tu trouves ici et là.

    Sans acquérir les bases tu vas rapidement en avoir marre de chercher les syntaxes exactes ! Ce qui serait dommage

    En ce qui concerne ton code, tu devrais utiliser l'enregistreur de macro. Il te donnera une bonne partie de ce que tu as besoin. Certes, il te faudra faire une passe dessus pour l'épurer mais ça fonctionnera.

    Pour le range("F5"), il sert à donner une valeur à ta variable numero_ligne.

  7. #7
    Membre averti
    Femme Profil pro
    autres
    Inscrit en
    Février 2019
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : autres

    Informations forums :
    Inscription : Février 2019
    Messages : 43
    Par défaut
    Bonjour,
    Je comprend bien ce que vous me dites mais il y'a certaines informations que je ne comprend pas, et si personne ne sait me l'expliquer je ne pourrais tout de meme pas avancer, je n'ai pas une logique super simple, je demande juste qu'on m'aide un peu a partir de mon code afin de savoir si je suis sur la bonne voie.

  8. #8
    Membre averti
    Femme Profil pro
    autres
    Inscrit en
    Février 2019
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : autres

    Informations forums :
    Inscription : Février 2019
    Messages : 43
    Par défaut
    Trystan merci,

    Enfin quelqu'un qui répond un peu à ma question, comme je l'ai dit je sais qu'il faut que je lise un peu le cours mais trop d'informations et après je ne suis pas, et ma logique est très faible. Est ce que je suis bien partie sur mon code ou non?
    J'ai déjà entendu parler de l'enregistreur de macro, comment l'utilise t on?



    Citation Envoyé par Trystan441 Voir le message
    Bonjour,

    Je me permet de rebondir sur ce que dit Patrice ().

    Ayant appris par moi même le VBA, les cours de ce type sont très important. Ils te permettent d'apprendre les conventions et ainsi comprendre plus facilement les codes que tu trouves ici et là.

    Sans acquérir les bases tu vas rapidement en avoir marre de chercher les syntaxes exactes ! Ce qui serait dommage

    En ce qui concerne ton code, tu devrais utiliser l'enregistreur de macro. Il te donnera une bonne partie de ce que tu as besoin. Certes, il te faudra faire une passe dessus pour l'épurer mais ça fonctionnera.

    Pour le range("F5"), il sert à donner une valeur à ta variable numero_ligne.

  9. #9
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut
    Bonjour à vous,

    J'apporte ma modeste contribution à ce qui a été exposé précédemment et que je partage bien évidemment.
    En complément
    Ci-joint des liens vers certains tutoriels de base (dont celui cité précédemment) et espaces documentaires.
    Quant aux formulaires, je ne peux qu'indiquer les tutoriels inclus dans l'espace de Silkyroad.
    Fichiers attachés Fichiers attachés

  10. #10
    Membre averti
    Femme Profil pro
    autres
    Inscrit en
    Février 2019
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : autres

    Informations forums :
    Inscription : Février 2019
    Messages : 43
    Par défaut
    BOnjour,
    Le lien pour le tutoriel ne fonctionne pas, il me dit site inaccessible, je dois faire quelque chose en particulier?

    Citation Envoyé par MarcelG Voir le message
    Bonjour à vous,

    J'apporte ma modeste contribution à ce qui a été exposé précédemment et que je partage bien évidemment.
    En complément
    Ci-joint des liens vers certains tutoriels de base (dont celui cité précédemment) et espaces documentaires.
    Quant aux formulaires, je ne peux qu'indiquer les tutoriels inclus dans l'espace de Silkyroad

  11. #11
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut
    Salut,

    Essaie
    Silkyroad

  12. #12
    Membre averti
    Femme Profil pro
    autres
    Inscrit en
    Février 2019
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : autres

    Informations forums :
    Inscription : Février 2019
    Messages : 43
    Par défaut
    Merci

    Citation Envoyé par MarcelG Voir le message
    Salut,

    Essaie
    Silkyroad

  13. #13
    Membre expérimenté
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2018
    Messages
    254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2018
    Messages : 254
    Par défaut
    Enfin quelqu'un qui répond un peu à ma question
    On à tous répondu à ta question, en te redirigeant vers des tutoriels qui te permettront de corriger ton code et de le poursuivre

    J'ai déjà entendu parler de l'enregistreur de macro, comment l'utilise t on?
    Je te laisse lire ça (oui encore de la lecture mais il n'y a que comme ça qu'on apprend) :
    https://fauconnier.developpez.com/tu...istreur-macro/

    Dans les grandes lignes, tu lances l'enregistreur, tu effectues les actions que tu souhaites sur ta feuille Excel, et tu l'arrêtes. Il va te fournir un code tout fait mais bourré de lignes "inutiles". A toi ensuite de tester en en supprimant certaines pour voir ce qu'il se passe.

    ma logique est très faible.
    La logique ça se travail. Tout est une question d'acquérir les bases du langage.

    comme je l'ai dit je sais qu'il faut que je lise un peu le cours mais trop d'informations
    Créé toi un répertoire sur le support que tu préfères (Excel, Word, Papier) pour rassembler toutes ces informations.

  14. #14
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut
    Créé toi un répertoire sur le support que tu préfères (Excel, Word, Papier) pour rassembler toutes ces informations.
    Parfaitement.
    Pour ma part, depuis 10 ans, j'entretiens ses sous-répertoires par type de problématique (les fichiers, les Formulaires, l'objet Range).
    Ils contiennent des classeurs exemples ou des documents Word reportant les codes dignes d'intérêt pour ma modeste culture.
    Ils ont en commun l'information quant à l'URL d'origine.
    Entretenir ce genre d'espace documentaire constitue un moyen de progression parmi tous les autres.

  15. #15
    Membre Expert
    Avatar de Igloobel
    Homme Profil pro
    Développeur ERP - VBA et Formateur bureautique
    Inscrit en
    Septembre 2005
    Messages
    1 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur ERP - VBA et Formateur bureautique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 871
    Billets dans le blog
    1
    Par défaut
    Bonjour à tous,

    Il est évident que lorsque qu'une personne demamde l'aide et qu'elle respecte les règles du forum que l'on va l'aider avec plaisir.

    tout d'abord, ne nous en veux pas de vouloir t'apprendre à pêcher plutôt que te donner le poisson tout cru

    cependant je vais quand même te donner des conseils

    pour éviter de se perdre dans tes différentes demandes on va commencer par ton premier post


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     Sub Rappel()
    'Dim est une variable
    Dim Onglet As Worksheet
    Dim DateJour, DateLimite
    Dim Ligne, Couleur
    ...
    premièrement DIM n'est pas une variable !
    DIM permet de déclarer une variable avec un type de variablecomme tu l'a fait avec ton premier DIM
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim Onglet As Worksheet
    si tu ne mets pas de type c'est sous entendu que c'est de type variant c'est à dire que tu réserves une grosse place mémoire pour rien
    surtout que les deux dates DateJour, DateLimite doivent être déclarer comme type de date c'est plus facile pour comparer et faire des calculs

    deuxièmement
    tu as fais une capture écran ou tu montres des dates sous forme JJ/MM est-ce bien des dates mise en forme ou du texte ?

    merci de préciser

    A bientôt

  16. #16
    Membre averti
    Femme Profil pro
    autres
    Inscrit en
    Février 2019
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : autres

    Informations forums :
    Inscription : Février 2019
    Messages : 43
    Par défaut
    Ben en gros j'ai demandé a quoi servait F5 tu m'as repondu, bon pour l'aide sur mon code et savoir si je suis sur la bonne voie personne ne veut me dire pour que je puisse avancer :/

    D'accord je vais essayé, ce que tu me dis avec le macro, je reviens vers toi si soucis.
    Merci

    Citation Envoyé par Trystan441 Voir le message
    On à tous répondu à ta question, en te redirigeant vers des tutoriels qui te permettront de corriger ton code et de le poursuivre



    Je te laisse lire ça (oui encore de la lecture mais il n'y a que comme ça qu'on apprend) :
    https://fauconnier.developpez.com/tu...istreur-macro/

    Dans les grandes lignes, tu lances l'enregistreur, tu effectues les actions que tu souhaites sur ta feuille Excel, et tu l'arrêtes. Il va te fournir un code tout fait mais bourré de lignes "inutiles". A toi ensuite de tester en en supprimant certaines pour voir ce qu'il se passe.



    La logique ça se travail. Tout est une question d'acquérir les bases du langage.



    Créé toi un répertoire sur le support que tu préfères (Excel, Word, Papier) pour rassembler toutes ces informations.

  17. #17
    Membre averti
    Femme Profil pro
    autres
    Inscrit en
    Février 2019
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : autres

    Informations forums :
    Inscription : Février 2019
    Messages : 43
    Par défaut
    Je reviens juste vers toi pour savoir si avec le macro on peut faire la fonction Si (ex si ma ligne est surligné).

    Et alors juste dans mon code TestLigne puis je mettre le nom de ma variable dans un Range
    Ex: Range(prenom).copy

  18. #18
    Membre expérimenté
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2018
    Messages
    254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2018
    Messages : 254
    Par défaut
    Et alors juste dans mon code TestLigne puis je mettre le nom de ma variable dans un Range
    Qu'est ce que tu cherches à mettre exactement dans cette variable ? Je te pose cette question car Range permet de sélectionner, une cellule ou une zone de plusieurs cellules.

  19. #19
    Membre averti
    Femme Profil pro
    autres
    Inscrit en
    Février 2019
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : autres

    Informations forums :
    Inscription : Février 2019
    Messages : 43
    Par défaut
    Pour la fonction Si, la syntaxe est faite c'est juste au niveau du macro que je ne savais pas si on pouvait le tester.

    J'ai d'abord cherché juste a mettre ce qui se trouve dans une cellule pour voir si ca fonctionne, mais c'est pour au final mettre toutes les infos de ma ligne.

  20. #20
    Membre expérimenté
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2018
    Messages
    254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2018
    Messages : 254
    Par défaut
    Si tu souhaites traiter toutes les lignes de ton tableau alors il va falloir que tu passes par une boucle !

    Mais une question avant tout : As-tu essayé de passer par une Mise En Forme Conditionnelle plutôt que par VBA ?

Discussions similaires

  1. afficher un graphique dans word à partir de mon code vba
    Par guysocode dans le forum VBA Word
    Réponses: 2
    Dernier message: 07/11/2005, 15h15
  2. Réponses: 2
    Dernier message: 27/10/2005, 16h51
  3. Réponses: 4
    Dernier message: 13/10/2005, 15h44
  4. Réponses: 3
    Dernier message: 06/09/2005, 11h27
  5. Comment creer une procédure stockée à partir d'un code VBA?
    Par Alcor020980 dans le forum Connexion aux bases de données
    Réponses: 4
    Dernier message: 24/05/2005, 20h55

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