XL 2013 Transfere de données d'un onglet à un autre par rapport à une cellule par VBA

Papy 100

XLDnaute Occasionnel
Bonjour le forum et MERCIS pour votre aide

Mon problème :

Je souhaiterai qu'après avoir rempli les cellules 9 - 11 - 13 - 15 et 17de la colonne "F" , ces données aillent s'afficher à l'onglet correspondant au nom de la salle demandée en "F9".


J'espère que cela est possible et que vous pourrez m'aider. D'avance grands MERCIS Patrick
 

Pièces jointes

  • Essais entretiens batiment A.xlsx
    62.2 KB · Affichages: 47

CPk

XLDnaute Impliqué
Re : Transfere de données d'un onglet à un autre par rapport à une cellule par VBA

Bonjour, sous condition de coder vous-même la date car elle n'existe pas en C3. De rendre à l'identique les noms de salle dans tous le classeur (espace compris) et de supprimer toutes les fusions de cellule, cette macro est fonctionnelle.


Sub transfert()
Dim fd As Worksheet
Set fd = Sheets(Feuil1.[g9].Value)
b = Array(Feuil1.[G11].Value, Feuil1.[G13].Value, Feuil1.[G15].Value, Feuil1.[f17].Value)
fd.Cells(Rows.Count, 4).End(xlUp)(2).Resize(, 4) = b
set fd = Nothing
End Sub
 

Modeste

XLDnaute Barbatruc
Re : Transfere de données d'un onglet à un autre par rapport à une cellule par VBA

Bonjour Papy 100, CPk

Il me semble que -pour une part- tu te compliques un peu la vie: pourquoi utiliser des zones de listes de type formulaire en colonne F, avec une cellule liée en colonne H, puis, en fonction du n° d'index en colonne H récupérer les items à afficher en colonne G, avec une RECHERCHEV :confused:
Si, en colonne F, tu utilises des Validations de données, ça devrait fonctionner aussi bien, non?

Par ailleurs, le fait de recopier dans la feuille concernée doit se faire à quel moment et à quelles conditions? Faut-il qu'en plus du nom de la feuille, les 4 autres cellules soient complétées (ou y en a-t-il qui sont facultatives)?
Dans la proposition jointe, un bouton "Enregistrer" devient visible dès que les 4 premiers champs sont complétés.

Même remarque que CPk sur les espaces manquants (par exemple feuille "Salle n°5") et les cellules inutilement fusionnées sur les lignes 1 et 2 de chaque feuille "Salle"
 

Pièces jointes

  • entretien batiment (Papy 100).xlsm
    66.7 KB · Affichages: 44

cathodique

XLDnaute Barbatruc
Re : Transfere de données d'un onglet à un autre par rapport à une cellule par VBA

Bonjour,

Si ça te conviens avec un formulaire. Évite de fusionner les cellules, c'est une source de problème.

Bon dimanche.
 

Pièces jointes

  • Essais entretiens batiment A.xlsm
    68.8 KB · Affichages: 41

Papy 100

XLDnaute Occasionnel
Re : Transfere de données d'un onglet à un autre par rapport à une cellule par VBA

Bonjour le Forum et GRANDS MERCIS à vous CPA, Modeste et Cathodique pour votre aide.

Le fichier joint de Modeste me convient à merveille. C'est exactement ce que je voulais. Pour les espacements, je vais faire très attention quand je rentrerai les noms des salles. Pour répondre à ta remarque, pertinente, sur les formats de contrôle, c'était pour avoir la totalité du menu, sans plus. Modeste, est-il possible de déplacer le bouton "enregistrer"? A cet endroit je souhaitai y mettre des recommandations pour autrui. Pour terminer, je peux sans problème changer les noms des salles dans le menu et dans les onglets
sans bousculer la macro? .... Grands MERCIS encore Patrick
 

Modeste

XLDnaute Barbatruc
Re : Transfere de données d'un onglet à un autre par rapport à une cellule par VBA

est-il possible de déplacer le bouton "enregistrer"?
  • Affiche le bouton en passant par le dernier bouton à droite, dans l'onglet Accueil ("Rechercher et sélectionner") > Option: "Volet de sélection"
  • Clique sur le trait horizontal à droite de BtValid
  • Une fois le bouton affiché, passe en "Mode création" (dans l'éditeur vba ou l'onglet Développeur)
  • Déplace le bouton à ta convenance
  • Masque le bouton dans le volet de sélection (en cliquant sur l'œil, cette fois)
  • Désactive le mode création



je peux sans problème changer les noms des salles dans le menu et dans les onglets
sans bousculer la macro?
Ma foi, tant que ta liste de salles correspond à la plage nommée "Liste_des_salles" ... À ce sujet, pourquoi ne pas utiliser des tableaux correspondant aux cellules effectivement utilisées dans chaque colonne de la feuille "Données" (ce qui éviterait les 12 lignes vides dans la liste déroulante des "Puissances", par exemple)?


@cathodique: il me semble que lors du clic sur le bouton "Enregistrer" de ton formulaire ... il ne se passe pas grand chose (le test sur le contenu de txtDate ne détermine que l'affichage du MsgBox ... le reste du code s'exécute ensuite, y compris le Exit Sub, 2 lignes plus bas)
 

cathodique

XLDnaute Barbatruc
Re : Transfere de données d'un onglet à un autre par rapport à une cellule par VBA

Bonsoir,

pas vraiment compris pourquoi, j'avais fait un test rapide. Mais pour que ça fonctionne, il faut que les noms des onglets et ce que tu as mis dans "Liste_des_salles" soient identiques. ex Salle N°1 et Salle N° 1, ce n'est pas ma même chose. Je l'ai fait jusqu'à la feuille 9.

J'ai cru comprendre par rapport au fichier de Modeste, tu veux la date du jour.

J'espère que ce fichier fera l'affaire.
 

Pièces jointes

  • Essais entretiens batiment A_bis.xlsm
    72.6 KB · Affichages: 39

Papy 100

XLDnaute Occasionnel
Re : Transfere de données d'un onglet à un autre par rapport à une cellule par VBA

Re le Forum et à toi Modeste

J'ai bien pris note de tes recommandations. je vais essayé de la faire sans tout bloquer. Encore une fois MERCIS à tous et à toi Modeste

Patrick
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 105
Messages
2 085 350
Membres
102 870
dernier inscrit
Armisa