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 :

MACRO ajout d'une ligne avec condition et ajout de données


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Femme Profil pro
    Responsable d'exploitation informatique
    Inscrit en
    Juillet 2015
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 62
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Responsable d'exploitation informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juillet 2015
    Messages : 27
    Points : 20
    Points
    20
    Par défaut MACRO ajout d'une ligne avec condition et ajout de données
    Bonjour,
    Je suis nulle concernant la fonction Macro et j'aimerai une aide s'il vous plait.
    J'ai un tableau avec 11 colonnes (de A à K) et j'aimerai ajouter une ligne au dessus si dans la colonne "C" il y a une donnée débutant par "AC" en ajoutant dans cette nouvelle ligne les données des colonnes "I" et "J" si elles débutent par "AL" ; dans les colonnes "C" et "E" si dans la colonne "C" il y a une donnée débutant par "AC"
    Avec ajout d'un bouton à droite sur le fichier.
    Par avance merci de votre aide.
    Fichiers attachés Fichiers attachés

  2. #2
    Membre émérite
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Points : 2 657
    Points
    2 657
    Par défaut
    Bonjour Helea,

    Ce que tu demandes est relativement simple.
    Cependant l'explication laisse à désirer...

    Ce que j'ai compris :
    1. Ajouter une ligne si en C on trouve une donnée commençant par "AC",
    2. Recopier les valeurs de I et J si I commence par "AL",
    3. Recopier les valeurs de C et E si C commence par "AC" (mais ça sera toujours le cas ?!?!).

    Si tel est le cas, voici :
    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
    28
    Option Explicit
     
    Sub ajout_ligne()
    Dim oRng As Range
    Dim i As Long
     
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
     
    With Worksheets("Test 1")
        Set oRng = .Range("C1")
        For i = .Cells(Rows.Count, 3).End(xlUp).Row To 1 Step -1
            If Left(oRng.Offset(i, 0), 2) = "AC" Then
                .Rows(i + 2 & ":" & i + 2).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
                oRng.Offset(i + 1, 0) = oRng.Offset(i, 0)
                oRng.Offset(i + 1, 2) = oRng.Offset(i, 2)
                If Left(oRng.Offset(i, 6), 2) = "AL" Then
                    oRng.Offset(i + 1, 6) = oRng.Offset(i, 6)
                    oRng.Offset(i + 1, 7) = oRng.Offset(i, 7)
                End If
            End If
        Next i
    End With
     
    Application.Calculation = xlCalculationAutomatic
    Application.ScreenUpdating = True
     
    End Sub
    N'hésite pas à revenir vers moi !

    Cordialement,
    Kimy
    La logique :
    • Plus ya de gruyère, moins ya de gruyère.
    • Plus tu pédales moins vite, moins tu avances plus vite.
    Plusoyer les réponses pertinentes et n'oublier pas de résolver en fin de post !

  3. #3
    Membre à l'essai
    Femme Profil pro
    Responsable d'exploitation informatique
    Inscrit en
    Juillet 2015
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 62
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Responsable d'exploitation informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juillet 2015
    Messages : 27
    Points : 20
    Points
    20
    Par défaut
    Bonjour Kimy et merci pour ton aide.
    Ce n'est pas tout à fait cela, je me suis mal expliquée :

    Ajouter une ligne (au dessus de la ligne ou se trouve "AC" en C) si en C on trouve une donnée commençant par "AC",
    Recopier les valeurs de I et J si I commence par "AL", (dans la ligne vierge insérée) et dans les colonnes C et F
    La valeur I devant être copiée dans C et la valeur J copiée dans F (dans la ligne vierge insérée précédemment)

    J'espère que la compréhension est meilleure maintenant.
    A te lire Kimy et merci beaucoup
    Héléa

    je viens de voir qu'il y a une condition supplémentaire à ma demande, donc je reformule :

    Ajouter une ligne (au dessus de la ligne ou se trouve "AC" en C) si en C on trouve une donnée commençant par "AC",
    Recopier les valeurs de I et J si I commence par "AL" et que dans K la valeur "6" est indiquée, (dans la ligne vierge insérée) et dans les colonnes C et F
    La valeur I devant être copiée dans C et la valeur J copiée dans F (dans la ligne vierge insérée précédemment)

    Désolée si c'est confus !
    Merci encore Kimy

  4. #4
    Membre émérite
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Points : 2 657
    Points
    2 657
    Par défaut
    Helea,

    Si je comprends bien, si C commence par "AC" mais que I ne commence pas par "AL" ou que K ne contient pas la valeur "6", une ligne sera ajoutée sans valeur ?
    Dans ce cas :
    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
    28
    29
    30
    31
    Option Explicit
     
    Sub ajout_ligne()
    Dim oRng As Range
    Dim i As Long
     
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
     
    With Worksheets("Test 1")
        Set oRng = .Range("C1")
        For i = .Cells(Rows.Count, 3).End(xlUp).Row To 1 Step -1
            'Si C commence par "AC"
            If Left(oRng.Offset(i, 0), 2) = "AC" Then
                'Insertion d'une ligne
                .Rows(i + 1 & ":" & i + 1).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromRightOrBelow
                'Si I de l'ancienne ligne commence par "AL" et K = 6
                If Left(oRng.Offset(i + 1, 6), 2) = "AL" And oRng.Offset(i + 1, 8) = 6 Then
                    'Sur la nouvelle ligne (en C) recopier ce qu'on a en I
                    oRng.Offset(i, 0) = oRng.Offset(i + 1, 6)
                    'Sur la nouvelle ligne (en F) recopier ce qu'on a en J
                    oRng.Offset(i, 3) = oRng.Offset(i + 1, 7)
                End If
            End If
        Next i
    End With
     
    Application.Calculation = xlCalculationAutomatic
    Application.ScreenUpdating = True
     
    End Sub
    Cordialement,
    Kimy
    La logique :
    • Plus ya de gruyère, moins ya de gruyère.
    • Plus tu pédales moins vite, moins tu avances plus vite.
    Plusoyer les réponses pertinentes et n'oublier pas de résolver en fin de post !

  5. #5
    Membre à l'essai
    Femme Profil pro
    Responsable d'exploitation informatique
    Inscrit en
    Juillet 2015
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 62
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Responsable d'exploitation informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juillet 2015
    Messages : 27
    Points : 20
    Points
    20
    Par défaut Merci
    Merci Kimy c'est parfait.
    Bonne journée à toi.
    Héléa

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

Discussions similaires

  1. [XL-2010] colorier une ligne avec condition LEFT
    Par laserrouge dans le forum Excel
    Réponses: 11
    Dernier message: 26/06/2015, 12h38
  2. [Mapping] Erreur d'ajout d'une ligne avec un Foreign key(Struts2, Hibernate)
    Par lahbabi dans le forum Hibernate
    Réponses: 0
    Dernier message: 11/08/2013, 06h45
  3. Somme d'une ligne avec condition colonne
    Par mft_ghost dans le forum Excel
    Réponses: 9
    Dernier message: 04/05/2010, 21h07
  4. inserer une ligne avec condition
    Par pepesese dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 25/02/2008, 19h22
  5. [VBA-E] ajout d'une ligne avec ordre alphabétique
    Par Yaone dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 29/04/2006, 16h52

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