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 :

= application.union(r1,r2,r3) ne fonctionne pas [Toutes versions]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut = application.union(r1,r2,r3) ne fonctionne pas
    bonjours a tous
    j'ai un soucis avec application.union
    ce code ne fonctionne pas et ne m'affiche meme pas un message d'erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub archivage()
     dim  r1 as range ,r2 as range, r3 as range
    Set r1 = Sheets(1).Range("A18:H18")
     Set r2 = Sheets(1).Range("A26:H26")
     Set r3 = Sheets(1).Range("A27:H27")
    Sheets("archive").Cells(Rows.Count, 1).End(xlUp).Offset(2, 6).Resize(3, 11) = Application.Union(r1, r2, r3)
    End Sub
    quelqu'un peut me dire pourquoi?
    merci du retour
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  2. #2
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Bonjour,

    déjà pourquoi tes 2 range n'on pas la même taille ?

    rajoute la propriété .Value à ton union..

  3. #3
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    merci Bill pour le retour
    effectivement ca n'est pas "H" mais "J" j'etait parti sur 8 colonnes au depart oooppsss!!!

    mais ca change rien ca ne fonctionne toujours pas

    je n'ai que la premiere plage(r1) qui est copiée sur les 3 lignes de destination

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub archivages()
     Set r1 = Sheets(1).Range("A18:j18")
     Set r2 = Sheets(1).Range("A26:j26")
     Set r3 = Sheets(1).Range("A27:j27")
    Sheets("archive").Cells(Rows.Count, 1).End(xlUp).Offset(2, 6).Resize(3, 10) = Application.Union(r1, r2, r3).Value
    End Sub
    résultat de la destination
    Nom : Capture.JPG
Affichages : 476
Taille : 21,4 Ko
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  4. #4
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    bon finalement je me debrouille mieux avec des tableaux
    c'est moins joli mais ca fonctionne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub archivages()
    Dim r(3) As Range
     Set r(1) = Sheets(1).Range("A18:k18")
     Set r(2) = Sheets(1).Range("A26:k26")
     Set r(3) = Sheets(1).Range("A27:k27")
    For i = 1 To 3
    Sheets("archive").Cells(Rows.Count, "G").End(xlUp).Offset(1, 0).Resize(1, 11) = r(i).Value
    Next
    End Sub
    union a la poubelle
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  5. #5
    Membre Expert
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2009
    Messages : 652
    Par défaut
    Bonjour,

    Cela fonctionne chez moi
    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
    Sub archivage()
    Dim r1 As Range, r2 As Range, r3 As Range
    '---
    Set r1 = Sheets(1).Range("A18:H18")
    Set r2 = Sheets(1).Range("A26:H26")
    Set r3 = Sheets(1).Range("A27:H27")
    Application.Union(r1, r2, r3).Copy
    Sheets("archive").Cells(Rows.Count, 1).End(xlUp).Offset(2, 6).Resize(3, 8).PasteSpecial '### voir ci-dessous pour les paramètres ###
    Application.CutCopyMode = False
    End Sub
     
    'Function PasteSpecial([Paste As XlPasteType = xlPasteAll],
    '[Operation As XlPasteSpecialOperation = xlPasteSpecialOperationNone],
    '[SkipBlanks], [Transpose])            Membre de Excel.Range
     
    'Syntaxe
    'expression.PasteSpecial(Coller, Opération, IgnorerVides, Transposer)
    'expression   Variable qui représente un objet Range.
    '
    'Paramètres
    'Coller Facultatif XlPasteType Partie de la plage à copier.
    'Opération Facultatif XlPasteSpecialOperation Opération de collage.
    'IgnorerVides Facultatif Variante True pour que les cellules vides de la plage provenant du Presse-papiers ne soient pas collées dans la plage de destination. La valeur par défaut est False.
    'Transposer Facultatif Variante True pour transposer les lignes et les colonnes lorsque la plage est collée. La valeur par défaut est False.
    '
    'Valeur renvoyée
    'Variante

  6. #6
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    bonjour PMO

    oui mais un pastespecial m'oblige a selectionner ca m'ennuie un peu avrai dire sachant que le sheets actif n'est pas la destination
    et je ne veux en aucun cas activer le classeur de destination

    est ce que copy...destination fonctionnerait d'apres toi ?

    edit:
    bon copy destiation fonctioone
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub test()
        With Sheets(1)
            donné = Array(Format(.Range("B4"), "dd/mm/yyyy"), .Range("B7"), .Range("B6"), .Range("B9"), .Range("B8"), .Range("B5"))
            Set r1 = .Range("A18:k18")
            Set r2 = .Range("A26:k26")
            Set r3 = .Range("A27:k27")
        End With
    Set Rng = Application.Union(r1, r2, r3)
    Set plage = Sheets("archive").Cells(Rows.Count, "G").End(xlUp).Offset(1, 0).Resize(3, 11)
        Rng.Copy Destination:=plage
    plage.Interior.Color = vbWhite
    End Sub
    merci a tous
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

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

Discussions similaires

  1. Deploiement incomplet: application ne fonctionne pas sur une autre machine
    Par Jeannot dans le forum Installation, Déploiement et Sécurité
    Réponses: 4
    Dernier message: 21/11/2007, 18h49
  2. Union sql ne fonctionne pas ?
    Par chapeau_melon dans le forum WinDev
    Réponses: 10
    Dernier message: 13/11/2007, 10h50
  3. mes applications consoles ne fonctionnent pas
    Par mok16 dans le forum C++Builder
    Réponses: 1
    Dernier message: 10/01/2007, 14h22
  4. Réponses: 1
    Dernier message: 30/08/2006, 19h00
  5. UNION qui ne fonctionne pas
    Par r-zo dans le forum Langage SQL
    Réponses: 7
    Dernier message: 21/07/2003, 10h04

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