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 :

Transfert de certaine cellule (variable) dans une autre feuille [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Dessinateur - Projeteur
    Inscrit en
    Avril 2018
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Dessinateur - Projeteur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2018
    Messages : 14
    Par défaut Transfert de certaine cellule (variable) dans une autre feuille
    Bonjour a tous,

    Actuellement en bureau d'étude structure et souhaitant gagner du temps sur l'export de mes quantitatifs, je voulais essayer d'automatiser la démarche.
    Je m'explique:

    - Je récupère mes données sur le logiciel REVIT (maquette numérique) et les extrait sur excel.

    - Une fois les données extrait, je souhaiterai transférer certaine données tel que : Type, Largeur, Hauteur, Longueur sur une autre feuille de "QUANTITATIF"

    J'ai réussi avec une macro automatique, le problème est dès lors que les exportations sont différentes, la macro ne fonctionne plus.

    Je pense qu'il faudrait une ligne de code comme : "Sélectionner la prochaine cellule pleine après la prochaine cellule vide" mais je suis débutant et je vous cache pas que je bloque malgré un tas de recherche sur les forums..

    En vous remerciant par avance,
    Images attachées Images attachées   
    Fichiers attachés Fichiers attachés

  2. #2
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Ton fichier joint est un xlsx, ce qui signifie qu'il ne contient pas de code.
    Tu devrais présenter ton code et une copie d'écran de tes données pour qu'il soit possible de comprendre ton problème et de proposer une solution.

    Pour ce qui est des pièces jointes : https://www.developpez.net/forums/d8...s-discussions/

  3. #3
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    Bonjour
    Pour commencer voila comment tu récupère une liste sans doublons
    reste à l'envoyer sur feuille Quantitatif
    Je suis débutant et ce qui est sur qu'il y a des solution meilleure que mon code bricolé
    Une question : est ce que à chaque téléchargement tu efface les anciennes données ?? et tu génère un nv borderau ??? ou c'est une téléchargement cumulative et le bordereau est cumulatif aussi??
    ce n'est qu'une piste et on verra après
    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
    Sub borderau()
    Dim FamilleType As New Collection
    Dim i As Integer
    Dim WB As Worksheet
    Dim WD As Worksheet
    Set WB = Sheets("FONDATIONS")
    Set WD = Sheets("Quantitatif")
     
    On Error Resume Next
    For Each cel In WB.Range("A4:A" & [A65000].End(xlUp).Row)
    If cel <> "" And Cells(cel.Row, 2) <> "" Then
        FamilleType.Add cel.Value, CStr(cel.Value)
        End If
    Next cel
    On Error GoTo 0
    For i = 1 To FamilleType.Count
    MsgBox "Information manquante pour : " & FamilleType(i)
    Next i
    End Sub

  4. #4
    Membre averti
    Homme Profil pro
    Dessinateur - Projeteur
    Inscrit en
    Avril 2018
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Dessinateur - Projeteur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2018
    Messages : 14
    Par défaut
    Merci BENNASR pour ta réponse,

    Pour répondre à tes questions :
    "Une question : est ce que à chaque téléchargement tu efface les anciennes données ??" :
    - Non, je n’effacerais pas les données, j’exporterais d'autre données sur une nouvelle feuille (ex: Mur RDC)

    "et tu génère un nv borderau ???"
    - Si tu parle du bordereau du quantitatif, non il sera toujours le même .

    Petite question sur ton code :

    Pourquoi avoir mis "information manquante.." en msgBox même si j'ai compris le système qui récupère bien les différentes liste ?

    Merci beaucoup,

  5. #5
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    re
    ce n'est qu'un texte et n'a aucun sens
    voila le code un peu evolué
    Attention : il faut travailler sur un fichier teste pour ne pas avoir de surprise
    il te reste juste récupérer les valeurs appropriées à chaque mesur
    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
    Sub borderau()
    Dim FamilleType As New Collection
    Dim cel As Range
    Dim i As Integer
    Dim WB As Worksheet
    Dim WD As Worksheet
    Set WB = Sheets("FONDATIONS")
    Set WD = Sheets("Quantitatif")
     
    'éfacer ancien données de la feuille quantitatif
    Dim derligne As Long
    dernligne = WD.Range("D" & Rows.Count).End(xlUp).Row ' rechercher dernière ligne non vide
    WD.Activate
     WD.Range("D18:L" & dernligne).Select
    Selection.ClearContents
    WB.Activate
    On Error Resume Next
    For Each cel In WB.Range("A4:A" & [A65000].End(xlUp).Row)
    If cel <> "" And WB.Cells(cel.Row, 2) <> "" Then
        FamilleType.Add cel.Value, CStr(cel.Value)
        End If
    Next cel
     
    On Error GoTo 0
    j = 18
    For i = 1 To FamilleType.Count
    WD.Cells(j, 4) = FamilleType(i)
    j = j + 2
    Next i
     
    End Sub

  6. #6
    Membre averti
    Homme Profil pro
    Dessinateur - Projeteur
    Inscrit en
    Avril 2018
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Dessinateur - Projeteur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2018
    Messages : 14
    Par défaut
    Merci BENNASR,

    Ton programme marche niquel !

    Comme je te le disais je suis débutant ...
    Transférer la largeur et hauteur ne devrait pas me poser de soucis grâce à ton code maintenant !

    Le problème que je vais rencontrer je pense c'est lorsque je veux récupérer la longueur (il me faut la longueur totale), il faut donc que je récupère le total qui se situe en bas.
    Or, tout dépend des exports réaliser. Dans l'exemple il y a 16 murs de 15cm, mais si il y en à plus par exemple comment faire pour récupérer la "dernière cellule" correspondante ?

    Je te remercie en tout cas pour ton aide et le temps passé sur mon post !

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 20/08/2014, 14h50
  2. Réponses: 6
    Dernier message: 06/01/2014, 21h08
  3. Ecrasement des valeurs après le transfert de la variable dans une autre classe.
    Par patriot dans le forum Développement Mobile en Java
    Réponses: 0
    Dernier message: 13/05/2011, 11h39
  4. [E-03] Sélection de cellules situées dans une autre feuille
    Par Job3-14 dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 05/03/2009, 13h27
  5. [langage] trouver une variable dans une autre
    Par BEAUJAULT dans le forum Langage
    Réponses: 2
    Dernier message: 19/08/2004, 15h04

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