Creation automatique d'onglet et transfert d'information

lancelot93

XLDnaute Nouveau
Bonjour à tous..
suite à de nombreuses lectures sur le forum j'ai déjà pu avancer dans mon problème..
Mais il me reste à conclure...

J'ai un onglet avec une "liste " de 3 colonnes:

Nom Fonction Service
Toto Fonction 1 Ser1
Tata Fonction 2 Serv2
...

Et cela pour plusieurs noms.

Ensuite dans un 2ème onglet, j'ai rédigé un "modèle" de document qui devra être rempli à chaque fois avec le nom, le service et la fonction.


Pour l'instant j'arrive, avec une macro, à générer autant d'onglet basés sur mon onglet "modèle"que de nom dans la "liste" de départ et surtout à nommer ces nouveaux onglets en fonction de toto, tata..etc...


Mais là où j'ai besoin d'aide c'est pour remplir ces nouveaux onglets avec les information de "liste" à savoir service et fonction qui sont propre à chaque tata.


Bref, mon objectif:

x onglets nommés toto, tata,.. basés sur un "modèle" et chacun des nouveaux onglets doit avoir des cellules reprenant les informations de service et de fonctions...


Mon classeur sera donc composé de:
  1. onglet liste
  • onglet modele

  • onglet nommé toto
cellule A1: toto
cellule A2: Fonction1
cellule A3: Serv1


  • onglet nommé tata
cellule A1: tata
cellule A2: Fonction2
cellule A3: Serv2

...


Merci beaucoup de votre aide!!

J'ai pensé à différents solutions mais au vue du nombre de personnes élevés dans ma liste ainsi que des services et fonctions..Je préfère réaliser une macro pour automatiser cela...car dans mon onglet "liste" tout peut varier...

Pierre
 

Pièces jointes

  • Projets Guidon M1-1.zip
    13.1 KB · Affichages: 51
Dernière édition:

mromain

XLDnaute Barbatruc
Re : Creation automatique d'onglet et transfert d'information

bonjour Pierre,

regarde si ce code te conviens

Code:
Sub test()
Dim modele As Worksheet, newSheet As Worksheet, curCell As Range
With ThisWorkbook
    Set modele = .Sheets("Modele-etudiant")
    Set curCell = .Sheets("Liste etudiants").Range("C6")
    While curCell.Value <> vbNullString
        modele.Copy after:=.Sheets(.Sheets.Count)
        Set newSheet = .Sheets(.Sheets.Count)
        newSheet.Name = curCell.Value
        newSheet.Range("O6").Value = curCell.Value
        newSheet.Range("O8").Value = curCell.Offset(0, 4).Value
        newSheet.Range("O10").Value = curCell.Offset(0, 2).Value
        Set curCell = curCell.Offset(1, 0)
    Wend
End With
End Sub

a+
 

lancelot93

XLDnaute Nouveau
Re : Creation automatique d'onglet et transfert d'information

Bonjour...
et merci de cette réponse parfaite et rapide!

Je suis bluffé...Je n'ai aucune compétence en VBA et là tu m'aides vraiment très bien!!
C'est exactement ce que je voulais!!
Maintenant je vais essayer de comprendre comment ça marche! histoire d'apprendre quelque chose!!


Un grand merci!!

Pierre
 

lancelot93

XLDnaute Nouveau
Re : Creation automatique d'onglet et transfert d'information

bonjour Pierre,

regarde si ce code te conviens

Code:
Sub test()
Dim modele As Worksheet, newSheet As Worksheet, curCell As Range
With ThisWorkbook
    Set modele = .Sheets("Modele-etudiant")
    Set curCell = .Sheets("Liste etudiants").Range("C6")
    While curCell.Value <> vbNullString
        modele.Copy after:=.Sheets(.Sheets.Count)
        Set newSheet = .Sheets(.Sheets.Count)
        newSheet.Name = curCell.Value
        newSheet.Range("O6").Value = curCell.Value
        newSheet.Range("O8").Value = curCell.Offset(0, 4).Value
        newSheet.Range("O10").Value = curCell.Offset(0, 2).Value
        Set curCell = curCell.Offset(1, 0)
    Wend
End With
End Sub

a+



Si jeux peux me permettre..
comment garder la casse des cellules de mon 1ere onglet: "liste"
 

Discussions similaires

Réponses
0
Affichages
301

Statistiques des forums

Discussions
312 970
Messages
2 094 044
Membres
105 926
dernier inscrit
Odyssea