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 :

Insertion de données variables dans plusieurs onglets [XL-2007]


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
    Tourneur
    Inscrit en
    Mai 2018
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 73
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Tourneur

    Informations forums :
    Inscription : Mai 2018
    Messages : 39
    Par défaut
    Bonjour,

    Je dispose d'un fichier avec plusieurs onglets nommés de 1 à 50 par exemple et je cherche à insérer un numéro dans la case B4 de chaque onglet du fichier excepté dans le premier onglet mais il porte un "vrai" nom. La forme du numéro est 00A B, la partie A doit s'incrémenter à chaque onglet, A vaut 1 pour l'onglet 1 et A vaudra 50 pour l'onglet 50, etc. La contrainte étant que la partie variable soit sur 3 chiffres, exemple : 00005 6378 => A=005.
    Autre contrainte, toujours avec l'exemple précité obtenir en case B4 de chaque fichier : "SN: 00005 6378", avec les espaces qui vont bien. Je ne sais pas comment sélectionner chaque onglet, y copier l'information voulue et passer à l'onglet suivant et ainsi de suite.

    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
    Chm = "C:\Users\Desk\Desktop\"
     
    Workbooks.Add
    ActiveWorkbook.SaveAs Filename:=Chm & of & ".xlsx", _
    FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
     
    Workbooks("Fichier_essai").Sheets("Id").Copy After:=Workbooks("F12").Sheets(1)
    Workbooks("Fichier_essai").Sheets("Tableau").Copy After:=Workbooks("F12").Sheets(2)
     
    nb = 5 'simulation du nombre d'onglet à ouvrir
     
    For i = 1 To nb
     
       Sheets("Tableau").Copy After:=Sheets(Sheets.Count)  'copie en x onglets
       ActiveSheet.Name = "" & (i)
     
    Next i
     
    Sheets("Tableau").Select
    ActiveWindow.SelectedSheets.Delete
     
    Sheets("Feuil1").Delete
    Sheets("Feuil2").Delete
    Sheets("Feuil3").Delete
    La suppression des 3 onglets d'origine du nouveau fichier créé passent par le message systématique suivant pour les 3 onglets : Les feuilles sélectionnées peuvent contenir des données. Pour supprimer définitivement les données, cliquer sur Supprimer. Est ce possible de s'affranchir de cette validation ?

    Le nom du fichier créé "F12" est en fixe, j'aimerai qu'il dépende d'une variable saisie en amont, par exemple TER. Comment peut on modifié la syntaxe du code ?

  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
    [QUOTE=Goku.;10662109]
    Citation Envoyé par Goku. Voir le message
    Le nom du fichier créé "F12" est en fixe, j'aimerai qu'il dépende d'une variable saisie en amont, par exemple TER. Comment peut on modifié la syntaxe du code ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim WBDest As Workbook
    Set WBDest = Workbooks(InputBox("Nom de fichier"))
    Ensuite, tu peux utiliser WBDest comme tu utilisais Workbooks("F12").

    Bien sûr, il serait mieux de faire un code un peu plus complet, mettre le résultat de InputBox dans une variable intermédiaire pour vérifier que l'utilisateur a renseigné quelque chose puis vérifier que le Workbook existe avec d'utiliser ce nom.
    Mais tu as le principe, à toi de le développer.

  3. #3
    Membre actif
    Femme Profil pro
    Tourneur
    Inscrit en
    Mai 2018
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 73
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Tourneur

    Informations forums :
    Inscription : Mai 2018
    Messages : 39
    Par défaut
    Merci Menhir pour le principe. Seulement la variable est saisie en amont comme précisé dans le second post et une inputbox ne m'arrange pas du tout. J'essaie depuis cet après midi d'insérer la variable dans le code, avec guillement, sans guillement, etc mais il y a toujours une erreur : L'indice n'appartient pas à la sélection

  4. #4
    Membre actif
    Femme Profil pro
    Tourneur
    Inscrit en
    Mai 2018
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 73
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Tourneur

    Informations forums :
    Inscription : Mai 2018
    Messages : 39
    Par défaut
    Bonjour à tous,

    Je souhaite faire des manipulations avec un fichier nommé avec une variable et comme le nom de fichier change il faudrait une formule générique basée sur cette variable saisie (contenu de la variable = nom du fichier), le but est d'obtenir un code du type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set NOM = Workbooks("var") 'var étant le nom du fichier
    J'ai beau essayer avec des &, des espaces et des guillements, rien n'y fait.

    Afin de mieux cerner ma demande voici une de mes application :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbooks("Fichier 1").Sheets("Tableau").Copy After:=NOM.Sheets(2)

  5. #5
    Membre actif
    Femme Profil pro
    Tourneur
    Inscrit en
    Mai 2018
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 73
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Tourneur

    Informations forums :
    Inscription : Mai 2018
    Messages : 39
    Par défaut
    Le premier sujet est en partie résolu, j'ai bidouillé ce petit code avec un case qui remplit la fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Select Case nbax
        Case Is < 9
             Range("B4") = "SN : " & zero1 & zero2 & zero3 & zero4 & nbax & " " & datecode '00001 à 00009
        Case 0 To 99
             Range("B4") = "SN : " & zero1 & zero2 & zero3 & nbax & " " & datecode '00010 à 00099
        Case 100 To 999
             Range("B4") = "SN : " & zero1 & zero2 & nbax & " " & datecode '00100 à 00999
     
    End Select
    Je passe le sujet en résolu et en ouvre un second pour le problème toujours présent de workbook avec variable.

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

Discussions similaires

  1. [XL-2013] Copier des données et coller dans plusieurs onglets
    Par apdf1 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 05/08/2016, 15h57
  2. [XL-2010] Copier des données dans plusieurs onglets
    Par Tameikei dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 19/10/2015, 19h13
  3. Macro : Récupérer des données dans plusieurs onglets et fichiers
    Par roidurif dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 05/12/2011, 21h35
  4. Systématiser l'export de données SAS dans plusieurs onglets XLS
    Par dakine dans le forum ODS et reporting
    Réponses: 4
    Dernier message: 18/02/2011, 15h47
  5. [Débutant - Avis] même variable dans plusieurs pages...
    Par ShinJava dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 16/12/2004, 22h50

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