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 - Inverser l'ordre d'une ligne


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Inscrit en
    Juillet 2012
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Juillet 2012
    Messages : 2
    Par défaut VBA - Inverser l'ordre d'une ligne
    Bonjour,

    Je suis un débutant en VBA et j'aimerais inverser l'ordre d'une ligne à l'aide d'une fonction. C'est à dire : 1 2 3 4 devient 4 3 2 1

    J'ai créé la fonction (Cette fonction est aussi valable pour les colonnes et matrices):

    ________________________
    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
    Option Base 1
    Function Inverse(TableauE As Variant) As Variant
     
    Dim TableauS As Variant
    Dim TailleI As Integer
    Dim TailleJ As Integer
    Dim I As Integer
    Dim J As Integer
     
     
    TailleI = UBound(TableauE, 1)
    TailleJ = UBound(TableauE, 2)
     
    ReDim TableauS(TailleI, TailleJ)
     
    For I = 1 To TailleI
        For J = 1 To TailleJ
     
        TableauS(I, J) = TableauE(TailleI + 1 - I, TailleJ + 1 - J)
     
        Next J
    Next I
     
    Inverse = TableauS
     
    End Function
    ________________________________

    Quand je selectionne une ligne de cellule et que je fais "=Inverse(Ligne que j veux inverser) + ctrl +Maj " il me retourne l'erreur #VALUE!...

    Merci de votre aide !

  2. #2
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    Bonjour,

    Un fonction ne peut retourner une plage de cellules mais uniquement une valeur Numérique ou Alpha
    Pour faire ce traitement il te faudra utiliser une procédure qui fera l'action soit d'un bloc sur toute la feuille, soit sur la ligne active

    NB : si la variable paramètre attend une plage de cellule, il sera plus judicieux de choisir le type Range à la place de Variant

  3. #3
    Membre éclairé Avatar de grisan29
    Homme Profil pro
    ouvrier poseur
    Inscrit en
    Octobre 2006
    Messages
    866
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ouvrier poseur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2006
    Messages : 866
    Par défaut
    bonjour Kalocagatia et Jfontaine ainsi que le forum
    moi j'utilise 2 boutons dont un remonte la ligne sélectionnée et l'autre la redescend, tout ça dans la plage de ligne qui va de 19 à 50
    chaque bouton est associé a un module dont voici celui qui remonte les lignes,
    pour les descendre il suffit de mettre "-" devant chaque 1 et remplacer 19 par 50

    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 remonte()
    '
    ' remonte Macro
    '
     
    '
    Dim T(), NoLigne As Long
     
    If Not Intersect(ActiveCell, Range("19:50")) Is Nothing Then
        NoLigne = ActiveCell.Row
        If ActiveCell.Row = 19 Then Exit Sub
        T = Rows(NoLigne - 1).Cells.Value
        Rows(NoLigne - 1).Value = Rows(NoLigne).Value
        Rows(NoLigne) = T
        ActiveCell.Offset(-1).Select
    End If
    End Sub
    si cela peu servir tant mieux

    Pascal

Discussions similaires

  1. [VBA-E] Comment avancer d'une ligne quand la précedente est pleine ?
    Par Trooper2 dans le forum Macros et VBA Excel
    Réponses: 21
    Dernier message: 19/01/2007, 20h56
  2. [VBA Excel] Userform pour supprimer une ligne précise
    Par Viper7 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 15/06/2006, 15h32
  3. [VBA-E] cellules vide sur une ligne
    Par bricereyem dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 12/06/2006, 22h20
  4. [VBA-E] Copier et coller une ligne entiere
    Par DonKnacki dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 30/05/2006, 16h51
  5. [VBA-E]insertion automatique d'une ligne dans un tableau
    Par janus82 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 06/04/2006, 16h42

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