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 :

Copier une ceullule dans une autre feuille si une condition est verifiée


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2016
    Messages : 61
    Par défaut Copier une ceullule dans une autre feuille si une condition est verifiée
    Bonjour,

    Je dois créer un fichier csv qui contient certains informations que je dois importer de differentes feuilles Pour cela j'ai pensé a creer un tableau excel d'abord et apres le transformer en csv

    En effet, Mon tableau que j ai créé sur la feuille"nombredetr"doit contenir en 1ere colonne le Nom et Prénom que je veux copier de la feuille "détails" si la colonne C qui est le matricule est renseignée.
    En gros Si la colonne C de la feuille "details" n est pas vide Copier le nom et prénom dans lafeuille "nombredetr" Sinon passer a la ligne suivante
    J ai fait ce code, ça me donne aucun résultat et aucun erreur . Je pense j'ai un problème avec l'algo que j ai fait
    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
    Sub Presentation()
    Worksheets("nombredetr").Cells.Clear
     
    Columns("A:A").ColumnWidth = 25
     
    Worksheets("nombredetr").Range("A1").Value = "Nom et Prénom"
    Worksheets("nombredetr").Range("B1").Value = "Code VAT System"
    Worksheets("nombredetr").Range("C1").Value = "Code Salarié"
    Worksheets("nombredetr").Range("D1").Value = "Code Rubrique"
    Worksheets("nombredetr").Range("E1").Value = "Date de début"
    Worksheets("nombredetr").Range("F1").Value = "Date de Fin"
    Worksheets("nombredetr").Range("G1").Value = "Plage de début"
    Worksheets("nombredetr").Range("H1").Value = "Plage de Fin"
     
        With Worksheets("nombredetr").Range("A1:H1").Interior
            .Pattern = xlSolid
            .PatternColorIndex = xlAutomatic
            .Color = 6299648
            .TintAndShade = 0
            .PatternTintAndShade = 0
        End With
        With Worksheets("nombredetr").Range("A1:H1").Font
            .ThemeColor = xlThemeColorDark1
            .TintAndShade = 0
           ' .HorizontalAlignment = xlCenter
          '  .Borders.Weight = xlThin
        End With
     
    For j = 2 To lastlign
    For i = 2 To lastlign
    If Worksheets("Détails").Range("C" & i) = "" Then
    i = i + 1
    Else
    Worksheets("nombredetr").Range("A" & j) = Worksheets("Détails").Range("A" & i) & " " & Worksheets("Détails").Range("A" & i)
     
    End If
    Next i
    Next j
     
     
     
    End Sub

    Merci d'avace pour votre aide

  2. #2
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 681
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    For j = 2 To lastlign
    For i = 2 To lastlign
    Il me semble que tu n'as pas donné de valeur à "lastlign" donc tes boucles ne font rien

  3. #3
    Membre actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2016
    Messages : 61
    Par défaut
    oui j'ai changé entre temps j ai affecté mis ma boucle de i=2 to 80
    Mais ça me donne que la derniere cellule de mon tableau détails

  4. #4
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 681
    Par défaut
    Je ne comprends pas l'interet de la boucle j

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    If Worksheets("Détails").Range("C" & i) = "" Then
    i = i + 1
    Tu te rends que tu saute des lignes en faisant ça?

  5. #5
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour
    Je vais en ce qui me concerne me contenter (et c'est déjà beaucoup) de l'inviter à mettre en langage naturel (en français, donc) chaque partie de cette ligne de code que tu as écrite :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Worksheets("nombredetr").Range("A" & j) = Worksheets("Détails").Range("A" & i) & " " & Worksheets("Détails").Range("A" & i)
    ce seul tout petit "effort" (c'est un minimum) devrait déjà te permettre de prendre conscience de ce que tu écris.

  6. #6
    Membre actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2016
    Messages : 61
    Par défaut
    Si tu parles des que j ai mis en double, oui c'était ue faute et je me suis rendue compte quand j ai eu le résultat et je l'ai changé.
    Mais c'est pas ce qui pose problème.
    Sinon si tu veux me donner une indication pour m'aider, je suis prenante et c'est pour ça que j'ai posté mon message. Si c'était juste une remarque sur mes "efforts" Merci c'est noté.

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

Discussions similaires

  1. [XL-2013] Retrouver une feuille puis une cellule dans un autre fichier
    Par bolide7 dans le forum Excel
    Réponses: 19
    Dernier message: 17/02/2014, 18h54
  2. VBA Copier plusieurs cellules dans uen autre feuille
    Par Tm7555555 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 09/09/2013, 19h25
  3. Réponses: 9
    Dernier message: 07/08/2013, 18h52
  4. Réponses: 13
    Dernier message: 09/11/2011, 12h06
  5. Réponses: 17
    Dernier message: 12/07/2006, 22h04

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