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 :

Comment coder en langage VBA ? [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Juillet 2018
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2018
    Messages : 10
    Par défaut Comment coder en langage VBA ?
    Bonjour à tous,

    J'aurai besoin de votre aide pour savoir comment coder en langage VBA les instructions suivantes :

    Si la date d'extraction de la colonne H2 dans la feuille1 ne correspond à aucune des dates comprises (entre les colonnes C1 & N1) de la feuille2
    alors afficher un message d'avertissement 'xxx'.

    Sinon comparer les valeurs des colonnes A & B de la feuille1 avec les valeurs des colonnes A & B de la feuille2
    Si les valeurs sont identiques
    Alors mettre la valeur de la colonne D de la feuille1 dans la colonne correspond à la date d'extraction de la feuille2
    Et mettre la valeur de la colonne E de la feuille1 dans la colonne X de la feuille2
    Sinon (les valeurs ne sont identiques) ajouter une nouvelle ligne dans la feuille2
    Mettre la valeur de la colonnes A de la feuille1 dans la colonne A de la feuille2
    Mettre la valeur de la colonnes B de la feuille1 dans la colonne B de la feuille2
    Mettre la valeur de la colonne D de la feuille1 dans la colonne correspond à la date d'extraction de la feuille2
    Mettre la valeur de la colonne E de la feuille1 dans la colonne X de la feuille2

    Merci pour votre aide et le temps que vous m'accordez pour m'aider.
    Je suis novice en VBA...

  2. #2
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Comment coder en langage VBA ?
    Comme ça : http://bidou.developpez.com/article/VBA/

  3. #3
    Membre habitué
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Juillet 2018
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2018
    Messages : 10
    Par défaut
    Merci Menhir pour ton lien, j'irai lire le cours...

    Et si quelqu'un peut déjà m'aider a retranscrire ce que j'ai mis en code VBA ça me ferait gagner un temps précieux.

  4. #4
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Billets dans le blog
    36
    Par défaut
    Citation Envoyé par kanjinan Voir le message
    Et si quelqu'un peut déjà m'aider a retranscrire ce que j'ai mis en code VBA ça me ferait gagner un temps précieux.
    Un bloc if avec des elseif, l'enregistreur de macros, de l'élagage et du copier-coller.

  5. #5
    Membre habitué
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Juillet 2018
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2018
    Messages : 10
    Par défaut
    1. Si la date d'extraction de la colonne H2 dans la feuille2 ne correspond à aucune des dates comprises (entre les colonnes C1 & N1) de la feuille3
    alors afficher un message d'avertissement 'xxx'.

    Sinon comparer les valeurs des colonnes A & B de la feuille1 avec les valeurs des colonnes A & B de la feuille3
    Si les valeurs sont identiques
    Alors mettre la valeur de la colonne D de la feuille1 dans la colonne correspond à la date d'extraction de la feuille3
    Et mettre la valeur de la colonne E de la feuille1 dans la colonne X de la feuille3
    Sinon (les valeurs ne sont identiques) ajouter une nouvelle ligne dans la feuille3
    Mettre la valeur de la colonnes A de la feuille1dans la colonne A de la feuille3
    Mettre la valeur de la colonnes B de la feuille1 dans la colonne B de la feuille3
    Mettre la valeur de la colonne D de la feuille1 dans la colonne correspond à la date d'extraction de la feuille3
    Mettre la valeur de la colonne E de la feuille1 dans la colonne X de la feuille3

    Je revu la description si quelqu'un peut m'aider et j'ai tenté le code suivant mais ca ne fonctionne pas du tout :

    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
    38
    ' Déclaration / Affectation
    'Application.ScreenUpdating = False
    '
    Dim i As Variant
    Dim j As Variant
     
    Set wsfs = Worksheets("Feuille1")
    Set wsfs2 = Worksheets("Feuille2")
    Set wsfs3 = Worksheets("Feuille3")
     
    ' On recherche en ligne 1, la date qui se trouve en H2 sur wsfs2, on met le résultat dans un range nommé Mois
    Set Mois = wsfs3.Rows("1:1").Find(wsfs2.Range("H2"), lookat:=xlWhole)
    ' Si le Mois est vide = valeur non trouvée
       If IsEmpty(Mois) Then
           MsgBox "Date absente dans les données sources"
        Exit Sub
    ' Si le Mois n'est pas vide = valeur trouvée
        Else
           MsgBox "Les dates correspondent aux données sources"
    End If
     
    With Sheets("Feuille3")
     
    For i = 2 To Range("A2").End(xlDown).Row
    For j = 2 To Range("B2").End(xlDown).Row
        If wsfs.Range("A" & j) = wsfs3.Range("A" & i) And wsfs.Range("B" & j) = wsfs3.Range("B" & i) Then
           wsfs3.Range("X" & i) = wsfs.Range("E" & j)
    '    Else
    '        Exit For
       End If
    Next j
    Next i
    '
    End With
    '
    'Application.ScreenUpdating = True
    '
    End Sub

  6. #6
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par kanjinan Voir le message
    ce n'est pas satisfaisant
    Qu'est-ce qui "n'est pas satisfaisant" ?

  7. #7
    Membre habitué
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Juillet 2018
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2018
    Messages : 10
    Par défaut
    Merci pour ton retour. Désolé pour les balises mais mon navigateur web refuse de les mettre...

    J'ai trouvé du code qui répond à un de mes critères la comparaison sur la colonne A & B sur 2 feuilles et que cela copie les données de la colonne E feuille1 vers la feuille3 de la colonne X si les données sont identiques .

    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
    Sub xxxx()
    '
       xxxx Macro
    '
        Set f1 = Sheets("Feuille3")
        Set f2 = Sheets("Feuille1")
        derLn1 = f1.Range("A" & Rows.Count).End(xlUp).Row
        derLn2 = f1.Range("A" & Rows.Count).End(xlUp).Row
     
    Application.ScreenUpdating = False
     
        f1.Range("X2:Y" & derLn1).ClearContents
     
        ReDim v1(derLn1 - 1)
        ReDim v2(derLn2 - 1)
        For i = 2 To derLn1
            v1(i - 2) = f1.Range("A" & i) & f1.Range("B" & i)
        Next i
        For i = 2 To derLn2
            v2(i - 2) = f2.Range("A" & i) & f2.Range("B" & i)
        Next i
     
        For i = 0 To derLn1 - 2
            For j = 0 To derLn2 - 2
                If v1(i) = v2(j) Then
    '               f2.Range("D" & j + 2 & ":E" & j + 2).Copy f1.Range("X" & i + 2)
                    f2.Range("E" & j + 2).Copy f1.Range("X" & i + 2)
                    Exit For
                End If
            Next j
        Next i
    '
    '
    End Sub
    J'ai oublié de preciser qu'il y a 60 000 lignes a comparer entre la feuille 1 et la feuille 3 avec des boucles sur les colonne A & B.

    Cela peut il aider pour savoir comment coder le reste des critères que j'ai listé en début de sujet ?

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 21/12/2015, 08h59
  2. [Toutes versions] comment coder en vba des sauts de page sous word
    Par xixeme dans le forum VBA Word
    Réponses: 1
    Dernier message: 28/03/2009, 00h35
  3. [VBA-E] Comment coder "différent d'1 enumeration de valeurs"?
    Par AliochaBada dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 13/08/2006, 18h41
  4. Comment coder une tabulation pour cut ?
    Par ggnore dans le forum Linux
    Réponses: 2
    Dernier message: 26/11/2004, 10h31
  5. Comment coder guillemets et cotes ?
    Par Vow dans le forum XML/XSL et SOAP
    Réponses: 4
    Dernier message: 14/05/2003, 12h11

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