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 :

Interposer ligne avec informations [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Maintenance System Engineer
    Inscrit en
    Décembre 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Maintenance System Engineer
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4
    Par défaut Interposer ligne avec informations
    Bonjour a tous,

    J'aurais besoin de votre aide concernant les VBA sur excel, je n'ai jamais utiliser cet outil et j'avoue avoir quelques difficultes meme apres lecture de plusieurs TUTO sur le net.

    Tout d'abord je vais vous presenter vaguement le projet.
    J'ai a ma disposition une liste d'equipements montes sur un bateau dont on organise la maintenance.
    Cette liste est organisee sous unee structure arborescente :
    • S : System
    • P : Position
    • A : Asset


    Chaque system est compose de plusieurs Position (un equipement) et ce meme Position detient son propre Asset.
    Mon probleme est que j'ai un certain nombre de Position deja rempli mais a qui on a pas encore reproduit la ligne Asset correspondant.

    J'aimerais donc que ma VBA execute ceci :

    • Test si cellule D contient un P (pour position)
    • Test si la cellule D+1 est un A (Asset). Si oui ne rien faire. Si non
    • Ajouter une ligne


    Dans cette ligne vide je voudrais :
    • Cell A : rien
    • Cell B : rien
    • Cell C : Reecrire le contenu de la cellule E-1
    • Cell D : Ecrire A
    • Cell E : Ecrire "Sys Generated"
    • Cell F : Reecrire le contenu de la Cell F-1 (mais seulement la partie avant le "-")
    • Cells jusque "Q" copy


    J'espere avoir ete le plus clair possible pour expliquer mon probleme et pouvoir avoir des reponses (positives )

    Petite precision, mon excel est Anglais du fait que je travail en Ecosse, je ne sais pas si ca importe quelque chose ou pas.


    Merci, au plaisir de vous lire. Nicolas.

  2. #2
    Membre Expert
    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
    Par défaut
    Meme si tu décris plutôt bien ton problème, je te propose de donner un fichier exmple pour que la communauté puisse te répondre.

    Montre ton fichier initial et le fichier que tu souhaites obtenir. Personnellement ça m'aiderait pour accéder à ta requète.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Maintenance System Engineer
    Inscrit en
    Décembre 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Maintenance System Engineer
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4
    Par défaut
    Oui je me doutais avoir une reponse comme celle ci donc j'etais en train de preparer un apercu du document de plus de 5000 lignes ...
    Fichiers attachés Fichiers attachés

  4. #4
    Membre à l'essai
    Homme Profil pro
    Maintenance System Engineer
    Inscrit en
    Décembre 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Maintenance System Engineer
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4
    Par défaut
    Si je peux me permettre de relancer le sujet.
    J'ai de mon coté fait un premier code,

    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
    32
    33
    34
    Private Sub CommandButton1_Click()
     
    Dim i As Integer
    Dim k As Integer
     
    For i = 25 To 10000
        If Worksheets("V60").Cells(i + 1, 4).Value = "A" Or Worksheets("V60").Cells(i + 1, 4).Value = "" Or Worksheets("V60").Cells(i , 4).Value = "S" Then
            i = i + 1
     
        Else
            Rows(i + 1).Insert
     	Worksheets("V60").Cells(i + 1, 2).Value = "TRUE"
            Worksheets("V60").Cells(i + 1, 3).Value = Worksheets("V60").Cells(i, 5).Value
            Worksheets("V60").Cells(i + 1, 4).Value = "A"
            Worksheets("V60").Cells(i + 1, 5).Value = "Sys Generated"
                k = 1
                While Mid(Worksheets("Sheet1").Cells(i, 6).Value, k, 1) <> "-" And k < 50
                k = k + 1
                Wend
            Worksheets("V60").Cells(i + 1, 6).Value = Mid(Worksheets("V60").Cells(i, 6).Value, 1, k - 2)
            Worksheets("V60").Cells(i + 1, 7).Value = Worksheets("V60").Cells(i, 7).Value
            Worksheets("V60").Cells(i + 1, 8).Value = Worksheets("V60").Cells(i, 8).Value
            Worksheets("V60").Cells(i + 1, 9).Value = Worksheets("V60").Cells(i, 9).Value
            Worksheets("V60").Cells(i + 1, 11).Value = Worksheets("V60").Cells(i, 11).Value
            Worksheets("V60").Cells(i + 1, 12).Value = Worksheets("V60").Cells(i, 12).Value
            Worksheets("V60").Cells(i + 1, 13).Value = Worksheets("V60").Cells(i, 13).Value
            Worksheets("V60").Cells(i + 1, 19).Value = Worksheets("V60").Cells(i, 19).Value
            Worksheets("V60").Cells(i + 1, 20).Value = Worksheets("V60").Cells(i, 20).Value
            i = i + 1
        End If
    Next i
     
     
    End Sub
    Suite a cela, j'obtiens un message d'erreur "Run time error'9': Subscript out of range".
    Je n'arrive pas a trouver l'erreur.

    Merci.

  5. #5
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    Bonjour,

    Quand on donne un message d'erreur, il faut toujours dire quelle ligne le provoque.
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  6. #6
    Membre à l'essai
    Homme Profil pro
    Maintenance System Engineer
    Inscrit en
    Décembre 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Maintenance System Engineer
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4
    Par défaut
    J'ai en fait réussi.
    Mon erreur était que j'avais oublié de stipuler le nom de la feuille et que j'avais laissé "sheet 1".
    De plus j'ai réussi a rajouter quelques petits trucs.

    Je suis plutot content de ma premiere VBA

    Merci a ceux qui ont essayé de résoudre mon probleme.

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

Discussions similaires

  1. Concaténer deux fichiers Ligne/Ligne avec SH
    Par guiltouf dans le forum Linux
    Réponses: 7
    Dernier message: 22/05/2007, 14h35
  2. Comment aller a la ligne avec la commande ECHO
    Par juflata dans le forum Windows
    Réponses: 3
    Dernier message: 23/06/2004, 17h11
  3. [FP]Tracer Une ligne avec Dev-pascal
    Par yffick dans le forum Turbo Pascal
    Réponses: 9
    Dernier message: 17/12/2003, 16h33
  4. supprimer une ligne avec cle etrangere
    Par BaBas dans le forum Langage SQL
    Réponses: 4
    Dernier message: 15/07/2003, 11h24

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