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 :

VBA Excel Array [Toutes versions]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2016
    Messages : 3
    Par défaut VBA Excel Array
    Bonjour - j'ai un tableau ( 10 colonne ) pour la lire et la mémoriser avec array aucun problème, pour copier les colonnes 1, 3 et 5 par exemple, j'ai un black out.. J'arrive à recopier la totalité des 10 colonnes .. je devrai ensuite supprimer les colonnes dont je n'ai pas besoin .. mais je pense qu il y a beaucoup plus simple, Merci pour votre aide ( Manu )

  2. #2
    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

    oui en effet il y a beaucoup plus simple
    voici un exemple qui copy ta plage A1:J10 sans les colonne 1,3,5
    et les colle a partir de la ligne 15 su le même sheets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Sub Macro1()
        Range("A:A,C:C,E:E").EntireColumn.Hidden = True
    Range("A1:J10").SpecialCells(xlCellTypeVisible).Copy Cells(15, 1)
    Range("A:A,C:C,E:E").EntireColumn.Hidden = False
    End Sub
    tu devrais t'en sortir avec cela c'est pas trop compliqué
    espérant que cela soit moins flou pour toi
    modification pour cette méthode suite a mon ereur d'interprétation signaler par le vieux sanglier préhistorique

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub Macro1()
       range ("A:J").EntireColumn.Hidden = True  
    Range("A:A,C:C,E:E").EntireColumn.Hidden = false
     Range("A1:J10").SpecialCells(xlCellTypeVisible).Copy Cells(15, 1)
     range ("A:J").EntireColumn.Hidden = false
     End Sub
    mille excuse au demandeur
    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

  3. #3
    Membre Expert
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Par défaut
    Bonjour, coucou Patrick ,

    autre solution à adapter :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub toto()
     
        With Feuil1.UsedRange
            VA = Application.Index(.Value, Evaluate("ROW(1:" & .Rows.Count & ")"), [{1,3,5}]) ' Code donné par Marc-L :1, 3 et 5 sont les colonnes choisies
        End With 'on peut aussi choisir l'ordre des colonnes comme [{5,3,1}] par exemple
        Feuil2.Range("A1").Resize(UBound(VA, 1), UBound(VA, 2)) = VA
     
    End Sub
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre :resolu: en n'oubliant pas d'indiquer qu'elle est la solution finale choisie ;)

  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
    bien RYU mais c'est l'inverse que l'on veut les colonnes 1,3,5 doivent sauter

    tu t'es enfin permis d'utiliser app.index hein ca y est t'a compris

    +1 car le code est propre
    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
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Par défaut
    oui index c'est top et bien pratique dans des cas

    Edit : astucieux l'idée de cacher les colonnes je t'ai mis
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre :resolu: en n'oubliant pas d'indiquer qu'elle est la solution finale choisie ;)

  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
    ce que veux le demandeur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub toto()
     dim tableau 
        With Feuil1.UsedRange
            tableau = Application.Index(.Value, Evaluate("ROW(1:" & .Rows.Count & ")"), [{2,4,6,7,8,9,10}]) ' Code donné par Marc-L :1, 3 et 5 sont les colonnes choisies
        End With 'on peut aussi choisir l'ordre des colonnes comme [{5,3,1}] par exemple
        Feuil2.Range("A15").Resize(UBound(tableau, 1), UBound(tableau, 2)) = tableau
     
    End Sub
    @econut
    les deux propositions sont parfaitement aptes a traiter des tableaux de grande taille il suffit d'adapter la plage

    attention a usedrange quand même!!! des cellules non concernées par ton tableaux peuvent être prises en compte adapte plutôt ta plage textuellement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub toto()
     
        With Feuil1.range("A1:J"& cells(rows.count,1).end(xlup).row)
            VA = Application.Index(.Value, Evaluate("ROW(1:" & .Rows.Count & ")"), [{2,4,6,7,8,9,10}]) ' Code donné par Marc-L :1, 3 et 5 sont les colonnes choisies
        End With 'on peut aussi choisir l'ordre des colonnes comme [{5,3,1}] par exemple
        Feuil2.Range("A15").Resize(UBound(VA, 1), UBound(VA, 2)) = VA
     
    End Sub
    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

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2016
    Messages : 3
    Par défaut
    Citation Envoyé par patricktoulon Voir le message
    Bonjour

    oui en effet il y a beaucoup plus simple
    voici un exemple qui copy ta plage A1:J10 sans les colonne 1,3,5
    et les colle a partir de la ligne 15 su le même sheets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub Macro1()
        Range("A:A,C:C,E:E").EntireColumn.Hidden = True
    Range("A1:J10").SpecialCells(xlCellTypeVisible).Copy Cells(15, 1)
    Range("A:A,C:C,E:E").EntireColumn.Hidden = False
    End Sub
    tu devrais t'en sortir avec cela c'est pas trop compliqué
    espérant que cela soit moins flou pour toi
    Merci, c est une solution .. mon exemple était "simple" - je veux utiliser une fonction array pour une BD beaucoup plus volumineuse j ai d ailleurs utilisé le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    For i = 1 To 5
     
        ActiveCell.Value = vBD(i, 1)
        ActiveCell.Offset(0, 1).Select
        ActiveCell.Value = vBD(i, 9)
        ActiveCell.Offset(0, 1).Select
        ActiveCell.Value = vBD(i, 3)
        ActiveCell.Offset(1, -2).Select
     
    Next i

  8. #8
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 241
    Par défaut
    hello,
    heu il est quand même fort le Patrick. De la demande initiale :
    Citation Envoyé par ecornut Voir le message
    Bonjour - j'ai un tableau ( 10 colonne ) pour la lire et la mémoriser avec array aucun problème, pour copier les colonnes 1, 3 et 5 par exemple, j'ai un black out.
    Il est arrivé à faire croire à tout le monde que c'était l'inverse qui était demandé (même au demandeur) :
    Citation Envoyé par patricktoulon
    bien RYU mais c'est l'inverse que l'on veut les colonnes 1,3,5 doivent sauter.
    Où alors c'est moi qui ne comprend plus le français

    Ami calmant, J.P

  9. #9
    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

    tu a raison hihihihihi!!

    je traite 2 sujet similaire en même temps l'autre c'est l'inverse


    je ferais un bon Gourou moi hahahaha
    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. [vba excel] renvoyer valeur array
    Par alsimbad dans le forum Macros et VBA Excel
    Réponses: 22
    Dernier message: 13/02/2007, 16h52
  2. [VBA][Excel]Array en constante
    Par Pollux dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 03/02/2006, 12h46
  3. [VBA-Excel]
    Par Damsou dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 05/01/2005, 10h17
  4. [VBA EXCEL] Réduire/Agrandir UserForms
    Par Fench dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 06/11/2003, 16h02
  5. [VBA Excel] Effacer rapidement une feuille
    Par Invité dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 24/10/2002, 13h12

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