sechanbask Posté(e) le 16 août 2007 Posté(e) le 16 août 2007 Algorithme:Etape de récupération de données :Dans "Feuil5 déperditions", je fais une recherche dans les intitulés des colonnes (en ligne 1), je reconnais les colonnes qui m'intéressent, je garde en mémoire le numéro des colonnes à savoir A, C,D,E. Puis je lis les colonnes qui m'intéressent de la ligne 2 et je garde en mémoire le contenu des cellules A2,C2,D2,E2. Etape de fusion:Danse "Feuil1 liste radiateur", je fais une recherche dans les intitulés des colonnes (en ligne 1), je reconnais les colonnes qui m'intéressent, je garde en mémoire le numéro des colonnes à savoir A, B, D. Puis je lis la colonne qui m'intéresse (à savoir A) et si je trouve dans cette colonne une valeur de cellule identique à "Feuil5 déperditions-A2" imaginons que la cellule se trouve en ligne 211, je mets la valeur "Feuil5 déperditions-D2" dans B211, et "Feuil5 déperditions-C2" dans D211. et je boucle les 2 tapes jusqu'à ce que j'ai fini la base de données de la feuille "Feuil5 déperditions"./Algorithme Sub récapdep_listing() 'attention cette macro ne fonction que si les données sont en feuil1 (la première créée) et en feuil5 (la 5ième créée). Dim i As Single Dim j As Single Dim Nom_colonne As String Dim Colonne_th As Single Dim Colonne_thi As Single Dim Colonne_deperdition As Single Dim Colonne_nom_piece As Single Dim Colonne_nom_piece_th As Single Dim Colonne_puissance As Single Dim Nom_local_source As String Dim Deperdition_source As String Dim Temperature_source As String Dim Nom_local_destination As String Colonne_th = 0 Colonne_nom_piece_th = 0 Colonne_deperdition = 0 Colonne_thi = 0 Colonne_nom_piece = 0 Colonne_puissance = 0 'repérage dans la Feuil5 déperditions 'parmi les 50 colonnes 'il faudrait mettre un 'excel.screenupdating = false puis = true à la fin pour augmenter la vitesse du code For i = 1 To 50 Nom_colonne = Feuil5.Cells(1, i) 'on recherche la colonne "Nom du local" et on récupère le nom de la colonne en Colonne_nom_piece_th If Nom_colonne = "Nom du local" Then Colonne_nom_piece_th = i End If If Nom_colonne = "Température hiver (°C)" Then Colonne_th = i End If If Nom_colonne = "Déperditions totales (W)" Then Colonne_deperdition = i End If If Colonne_th <> 0 And Colonne_nom_piece_th <> 0 And Colonne_deperdition <> 0 Then Exit For End If Next i 'repérage Feuil1 liste radiateur 'recupère le nom de la colonne où se trouve l'attribut pour le radiateur For j = 1 To 150 Nom_colonne = Feuil1.Cells(1, j) If Nom_colonne = "Ti (°C)" Then Colonne_thi = j End If If Nom_colonne = "repère" Then Colonne_nom_piece = j End If If Nom_colonne = "Déperditions" Then Colonne_puissance = j End If If Colonne_thi <> 0 And Colonne_nom_piece <> 0 And Colonne_puissance <> 0 Then Exit For End If Next j For k = 2 To 1500 Step 1 'récupère les données à la source Nom_local_source = Feuil5.Cells(k, Colonne_nom_piece_th) Deperdition_source = Feuil5.Cells(k, Colonne_deperdition) Temperature_source = Feuil5.Cells(k, Colonne_th) For i = 2 To 1850 Step 1 'cherche le local dans les données de destination Nom_local_destination = Feuil1.Cells(i, Colonne_nom_piece) 'si les locaux portent le même nom... If Nom_local_source = Nom_local_destination Then 'pour le local X mettre dans colonne nom_thi la température correspondant au local Feuil1.Cells(i, Colonne_thi) = Temperature_source 'pour le local X mettre dans colonne nom_thi les déperditions correspondant au local Feuil1.Cells(i, Colonne_puissance) = Deperdition_source Else 'sinon il serait bien de faire resotir de la base de données source les pièces non trouvées dans la base de donnée de destination End If Next i Next k End Sub Je vous donne aussi le fichier pour que vous puissiez vite voir...http://cjoint.com/?jkiXexm4SB Vous pouvez constater que les lignes 30 et 51 ne sont pas effacées lors de la fusion.Lorsque j'ai crée ça, j'ai eu beaucoup de déchets car le nom des différents locaux n'avaient pas toujours de similitudes entre la source et la destination : des pièces avaient été regroupées pour former des pièces thermiques... mais bon j'ai gagné pas mal de temps car le listing était bien plus compliqué avec beaucoup de sous totaux, et de sauts de lignes. En fait, c'était loin de ressembler à une base de données.J'espère que ça pourra servir à quelqu'un.[Edité le 10/9/2007 par sechanbask] [Edité le 11/9/2007 par sechanbask] ATEGIE - Bureau d'Études Fluideshttp://www.ategie.fr/uploads/ategie/ategie-at%C3%A9gie-bureau-%C3%A9tudes-etudes-fluides-logo-100x56.pngExécution, Synthèse, Conception, Maîtrise d'Oeuvre, Audit, Chiffragewww.ategie.fr
lili2006 Posté(e) le 16 août 2007 Posté(e) le 16 août 2007 Bonsoir à tous, sechanbask Même question que sur le dernier post, comment charge t-on des fichiers comme celui que tu proposes ?Je viens de regarder ton fichier Excel 'trés complet d'ailleurs !)et l'idée pour moi serait de pouvoir partir d'une feuille vierge, de "coller" ton code et voir comment ça marche. Merci d'avance et @+, PS: Alors ce feu d'artifice ? Civil 3D 2025 - COVADIS_18.3c https://www.linkedin...3%ABt-95313341/
sechanbask Posté(e) le 17 août 2007 Auteur Posté(e) le 17 août 2007 dans Excel, tu tappe ATL+F11, ça devrait t'ouvrir VBA pour Excel. Tu cliques sur rien d'autre que le menu Insertion module, puis tu colles les lignes de code qui sont sur le forum. Sous excel, il faut que tu créés un un minimum de 5 feuille car la macro ne fonctione qu'entre la feuille 1 et 5: 'attention cette macro ne fonction que si les données sont en feuil1 (la première créée) et en feuil5 (la 5ième créée). quand tu as tes données sur tes feuilles, tu enregistres, puis tu tappes ALT+F8 , tu sélectionnes "récapdep_listing", tu fais "exécuter" et tu attends quelques secondes en fonction de ton PC. bonne journée ATEGIE - Bureau d'Études Fluideshttp://www.ategie.fr/uploads/ategie/ategie-at%C3%A9gie-bureau-%C3%A9tudes-etudes-fluides-logo-100x56.pngExécution, Synthèse, Conception, Maîtrise d'Oeuvre, Audit, Chiffragewww.ategie.fr
lili2006 Posté(e) le 17 août 2007 Posté(e) le 17 août 2007 Bonjour à tous, Merci encore sechanbask, je commence à y voir +clair, Bonne journée et @+. Civil 3D 2025 - COVADIS_18.3c https://www.linkedin...3%ABt-95313341/
speedy Posté(e) le 10 septembre 2007 Posté(e) le 10 septembre 2007 Bonjour sechanbaskpeux tu reposter ton fichier excel avec ce code il n'est plus accessible.... j'aimerais le tester... @+ Michel a
sechanbask Posté(e) le 10 septembre 2007 Auteur Posté(e) le 10 septembre 2007 c'est fait je le remets là mais il est bon dans le sujet :http://cjoint.com/?jkiXexm4SBBonne utilisation, j'ai appris récemment la méthode pour contrôler la régénération de l'écran... donc il faudrait le mettre (voir commentaire du code). ATEGIE - Bureau d'Études Fluideshttp://www.ategie.fr/uploads/ategie/ategie-at%C3%A9gie-bureau-%C3%A9tudes-etudes-fluides-logo-100x56.pngExécution, Synthèse, Conception, Maîtrise d'Oeuvre, Audit, Chiffragewww.ategie.fr
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant