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 :

Copie conditionnelle vers 2 destinations [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2015
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Février 2015
    Messages : 113
    Par défaut Copie conditionnelle vers 2 destinations
    Bonjour,

    A priori, c'est simple...pas pour moi on dirait. J'ai un problème dans la syntaxe.
    J'ai un tableau qui contient des informations que je dois copier dans 2 feuilles différentes selon certaines conditions. La première est commune et est "OUI" la seconde varie, c'est la durée 6 ou 15 jours.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub Presence()
    Dim i As Integer
     
    For i = 2 To 81
        If (Workbook("Formation.xlsm").sheets("Session").Cells(i, 8) = "OUI") and if (thisworkbook.sheets("Session").Cells(i, 7) = "15 jours") then
            ThisWorkbook.Sheets("Session").Cells(i, 1).Copy
            ThisWorkbook.Sheets("Présence-F2").Range("A65536").End(xlUp).Offset(1, 0).PasteSpecial xlValue
        Else if thisworkbook.sheets("Session").Cells(i, 8) = "OUI" and if thisworkbook.sheets("Session").Cells(i, 7) = "6 jours" then
            ThisWorkbook.Sheets("Session").Cells(i, 1).Copy
            ThisWorkbook.Sheets("Présence-F1").Range("A65536").End(xlUp).Offset(1, 0).PasteSpecial xlValue
        End If
    Next i
    End Sub
    Le if n'est pas bon. J'ai essayé plusieurs choses sans succès (for each par exemple, fonctionne bien avec une condition).

    Voilà.

    Merci d'avance.

    Cordialement,

    Fred

  2. #2
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 684
    Par défaut
    Bonjour,

    Tu ne dois pas mettre deux if sur la meme ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if condition1 and condition2 then

  3. #3
    Membre confirmé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2015
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Février 2015
    Messages : 113
    Par défaut copie conditionnelle vers 2 destinations
    Bonjour,

    Yes, tout à fait. J'ai les yeux qui piquent...

    Merci halaster08

  4. #4
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonjour,
    essayes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        If Workbook("Formation.xlsm").Sheets("Session").Cells(i, 8) = "OUI" And ThisWorkbook.Sheets("Session").Cells(i, 7) = "15 jours" Then
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        ElseIf ThisWorkbook.Sheets("Session").Cells(i, 8) = "OUI" And ThisWorkbook.Sheets("Session").Cells(i, 7) = "6 jours" Then
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  5. #5
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Perso, je l'aurais écrit comme ça
    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
    Sub Presence()
    Dim i As Integer
     
    For i = 2 To 81
      If Workbook("Formation.xlsm").Sheets("Session").Cells(i, 8) = "OUI" Then
        If ThisWorkbook.Sheets("Session").Cells(i, 7) = "15 jours" Then
          With ThisWorkbook.Sheets("Présence-F2")
            .Range("A" & .Rows.Count).End(xlUp).Offset(1, 0) = ThisWorkbook.Sheets("Session").Cells(i, 1)
          End With
        ElseIf ThisWorkbook.Sheets("Session").Cells(i, 7) = "6 jours" Then
          With ThisWorkbook.Sheets("Présence-F1")
            .Range("A" & .Rows.Count).End(xlUp).Offset(1, 0) = ThisWorkbook.Sheets("Session").Cells(i, 1)
          End With
        End If
      End If
    Next i
    End Sub
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  6. #6
    Membre confirmé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2015
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Février 2015
    Messages : 113
    Par défaut copie conditionnelle vers 2 destinations
    Bonjour Dom,

    Je vois ton code. A priori, il y aurait une meilleure exécution, plus rapide, plus propre ?

    Cordialement,

    Fred

  7. #7
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    juste pour la bonne lecture, moins de risque d'erreur, et le PasteSpecial avec value peut s'écrire simplement avec "=", mais rien ne t'y oblige,
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  8. #8
    Invité
    Invité(e)
    Par défaut
    Bonsoir,
    Personnellement j'opterai pour un filtre élaboré

    http://philippetulliez.developpez.co...dvancedfilter/

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

Discussions similaires

  1. [VBA] Copy WorkSheet vers un autre Workbook
    Par Kyles dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 20/05/2008, 00h00
  2. Copie table vers une autre et ajout d'autres champs
    Par oxygen240 dans le forum Requêtes
    Réponses: 2
    Dernier message: 23/02/2008, 23h45
  3. Copie conditionnelle des valeurs d'une ligne
    Par frisette68 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 13/02/2008, 03h07
  4. Copie requete vers base distante
    Par Sam 069 dans le forum VBA Access
    Réponses: 2
    Dernier message: 24/09/2007, 21h39
  5. Copie Colonne vers colonne meme table
    Par TOPGUN89 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 29/09/2006, 10h02

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