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 :

décalage de cellules sous condition


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 68
    Par défaut décalage de cellules sous condition
    Bonjour à tous,

    A partir d'un tableau contenant 3 lignes et n colonnes, je souhaite construire un tableau similaire mais ne regroupant que les colonnes dont la celulle de du bas (ligne3) est complétée.

    sachant que le tableau fait partie d'une feuille excel complétée par d'autres tableau , il n'est pas possible de supprimer l'ensemble de la colonnes.

    C'est pourquoi je me suis intéresé à la foncyion "DECALER" en essaynt de mettre une condition sur les cellules à décaler, mais je n'y suis pas parvenu.

    ci-joint un fichier excel exemple

    Merci d'avance pour votre précieuse aide

  2. #2
    Membre Expert Avatar de rvtoulon
    Homme Profil pro
    Agent Technique
    Inscrit en
    Mars 2009
    Messages
    1 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Agent Technique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 042
    Par défaut
    Slt, puisque pas trop de détails,
    en admettant que ton tableau se trouve dans feuil1 et commence à la cellule A1. je sélectionne la colonne ou dans la ligne 3 il y a une donnée et je la colle en feuille 2 à partir de A1.
    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
    Sub essaicopie()
    Dim dercolon As Long, x As Long
    'recherche le numéro de la colone pleine à partir de la
    'troisième ligne de la feuil 1
    dercolon = Sheets("feuil1").Rows(3).Cells.Find("*", , , , , xlPrevious).Column
    x = 1
    With Sheets("Feuil1")
    'a partir de la colonne 1 jusqu'a la dernière colonne pleine
    For i = 1 To dercolon
      'Si la cellule contient une valeur alors
      If .Cells(3, i) <> "" Then
      'je copie la colonne et la colle a partir de A1 en feuille 2
       .Columns(i).Copy Sheets("Feuil2").Columns(x)
       x = x + 1
      End If
    Next i
    End With
    End Sub
    Merci à laetitia pour l'utilisation du Find afin de rechercher la dernière cellule pleine d'une colonne.

    Tiens nous au courant.
    A+

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 68
    Par défaut
    Super ça fonctionne, c'est tout à fait ce que je cherchais !

    Il ne me reste plus qu'à l'adapter à mon tableau

    MERCI beaucoup !

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 68
    Par défaut
    En fait non ce n'est pas tout a fait ce que je cherchais ....

    car dans las solution ce sont des colonnes entières qui sont supprimées et collées.

    Moi, je ne souhaite agir que sur certaines cellules (comme dans l'exemple joint). En effet si je supprime des colonnes entières d'autres données de ma feuille excel viendraient à disparître.

    ci joiont le fichier excel exemple

    MERCI
    Fichiers attachés Fichiers attachés

  5. #5
    Membre Expert Avatar de rvtoulon
    Homme Profil pro
    Agent Technique
    Inscrit en
    Mars 2009
    Messages
    1 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Agent Technique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 042
    Par défaut
    Slt,
    en effet j'avais bien lu le premier post
    sachant que le tableau fait partie d'une feuille excel complétée par d'autres tableau , il n'est pas possible de supprimer l'ensemble de la colonnes.
    mais le code que je t'avais donné était à adapter. je t'avais donné une piste.
    Pour faire ce que tu souhaites ( il y a certainement mieux que ce code, mais bon il fonctionne) voici quelques changements :
    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
    Sub essaicopie()
    Dim dercolon As Long, x As Long, y As Long
     
    y = 12 'numero de ligne à adapter
    x = 1
    dercolon = Sheets("feuil1").Rows(y).Cells.Find("*", , , , , xlPrevious).Column
     With Sheets("Feuil1")
    For i = 1 To dercolon
      If .Cells(y, i) <> "" Then
       .Range(Cells(y - 2, i), Cells(y, i)).Copy Sheets("Feuil2").Columns(x)
       x = x + 1
      End If
    Next i
    End With
    End Sub
    A+

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 68
    Par défaut
    Ca marche !

    un grand merci à toi !

    Cette fois-ci je pense être en mesure d'appliquer cette macro à mon tableau !

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 68
    Par défaut
    Décidement je ne suis pas au bout des mes surprises

    il se trouve que le tableau de départ contient des formules "excel"

    or lorsque je lance la macro de copie du tableau celle-ci ne copie la formule et la couleur de la cellule et non la valeur et le format de la cellule (comme je le souhaite).

    J'ai essayer d'enregistrer une macro "collage spécial" pour m'en inspirer mais je ne suis pas parvenu à l'exploiter.

    Voici mon code pour l'instant

    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
    Sub copie_tableau()
    Dim dercolon As Long, x As Long, y As Long
     
    y = 58 'numero de ligne à adapter
    x = 1
    dercolon = ActiveSheet.Rows(y).Cells.Find("*", , , , , xlPrevious).Column
     With ActiveSheet
    For i = 1 To dercolon
      If .Cells(y, i) <> "" Then
       .Range(Cells(y - 2, i), Cells(y, i)).Copy Range("A82").Columns(x)
       x = x + 1
      End If
    Next i
    End With
    End Sub
    Par ailleurs j'ai trouvé sur un forum (merci) la fonction suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Function valetformat(cellule As Range)
    x = Replace(cellule.NumberFormat, "General", "")
    valetformat = Replace(cellule.Value & x, """", "")
     
    End Function
    comment pourrai-je l'exploiter afin de copier les cellules telles quelles apparaissent à l'écran

    Merci pour votre aide

  8. #8
    Membre Expert Avatar de rvtoulon
    Homme Profil pro
    Agent Technique
    Inscrit en
    Mars 2009
    Messages
    1 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Agent Technique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 042
    Par défaut
    slt,
    au final que souhaites tu faires? tu dis:
    or lorsque je lance la macro de copie du tableau celle-ci ne copie la formule et la couleur de la cellule et non la valeur et le format de la cellule (comme je le souhaite).
    que veux-tu copier?
    Soit précis stp car pas vraiment le temps de revenir sur le code.

    fait une recherche dans l'aide d'excel sur pastespecial et l'argument XlPasteType.
    A+

Discussions similaires

  1. [XL-2000] Saisie dans des cellules sous conditions
    Par cedana dans le forum Excel
    Réponses: 3
    Dernier message: 14/01/2010, 14h00
  2. suppression cellules sous condition
    Par bizjet dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 14/12/2009, 16h06
  3. [XL-2003] faire Clignoter une cellule sous condition
    Par LaPanic dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 21/06/2009, 18h49
  4. macro vba identifier cellule sous condition
    Par yanacrux dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 03/03/2009, 14h00
  5. colorer des cellules sous conditions
    Par coenonympha dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 11/07/2008, 13h54

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