-
Compteur de contenus
103 -
Inscription
-
Dernière visite
-
Jours gagnés
1
SF.Designer a gagné pour la dernière fois le 21 septembre 2022
SF.Designer a eu le contenu le plus aimé !
À propos de SF.Designer
- Date de naissance 05/08/1981
Profile Information
-
Gender
Not Telling
Visiteurs récents du profil
SF.Designer's Achievements
-
Empêcher l'affichage de l'historique de l'invite de commande
SF.Designer a répondu à un(e) sujet de Matt666 dans Pour aller plus loin en LISP
Petite solution en fin de fonction : ; Fermer Fenetre Texte (defun CloseWindowText () (textscr) ; Basculer sur fenêtre de texte (vlax-invoke-method (vlax-get-or-create-object "WScript.Shell") "SendKeys" "%{F4}")) ; Fermer fenêtre de texte -
Chargement automatique de LISP
SF.Designer a répondu à un(e) sujet de LUDWIG dans LISP et Visual LISP
Salut, en un peu plus simple 😉 (defun load-lsp () (foreach file (vl-directory-files "C:/.../" "*.lsp" 1) (load file (strcat file " did not load")) )) (load-lsp) -
Merci Didier Finalement en testant une autre solution, j'ai trouvé mon graal hehe '*** Comptage des occurrences des valeurs uniques dans la colonne D Dim lastRow, i, cellValue Dim uniqueDict lastRow = objSheet.Cells(objSheet.Rows.Count, "D").End(-4162).Row ' -4162 = xlUp Set uniqueDict = CreateObject("Scripting.Dictionary") ' Parcourir la colonne D et compter les occurrences For i = 2 To lastRow cellValue = objSheet.Cells(i, 4).Value ' Colonne D est la 4ème colonne If Not uniqueDict.Exists(cellValue) Then uniqueDict.Add cellValue, 1 Else uniqueDict(cellValue) = uniqueDict(cellValue) + 1 End If Next ' Écriture des résultats dans les colonnes F et G Dim outputColumn outputColumn = 6 ' Débuter à la colonne F (6ème colonne) For Each dictKey In uniqueDict.Keys ' Écrire la valeur unique en ligne 1 objSheet.Cells(1, outputColumn).Value = dictKey ' Écrire le nombre d'occurrences en ligne 2 objSheet.Cells(2, outputColumn).Value = uniqueDict(dictKey) ' Ajouter une bordure autour des cellules contenant les valeurs With objSheet.Cells(1, outputColumn).Borders .LineStyle = xlContinuous .Weight = xlMedium End With With objSheet.Cells(1, outputColumn).Font .Bold = True .Name = "Verdana" .Size = 11 End With ' Ajouter une bordure fine autour des cellules contenant les résultats With objSheet.Cells(2, outputColumn).Borders .LineStyle = xlContinuous .Weight = xlThin End With With objSheet.Cells(2, outputColumn).Font .Name = "Verdana" .Size = 10 End With outputColumn = outputColumn + 1 ' Passer à la colonne suivante Next
-
Pour le moment le script fait : - Copie des fichiers DAT dans le dossier de destination - Modification des DAT en excel, avec traitement "Trier, bordure etc..." - Réunir les fichiers en un seul Excel. Maintenant j'aimerais comptabiliser les éléments commun de la colonne D et inscrire automatique le résultat comme suis : En F2 le code 102 (cellule D2), en F3 le nombre d'occurrence de 102 trouvé. En G2 le code suivant le 102 dans le tableau, ici 210, en G3 le nombre d'occurrence de 210 trouvé. En H2 le code suivant..... H3 son nombre Se traitement se fait avant de réunir toutes les feuilles dans un classeur commun
-
Bonjour, Non en fait c'est un VBS externe, une fois lancer je dois sélectionner un dossier avec fichier source DAT, puis un dossier de destination et ca mouline !
-
SF.Designer a commencé à suivre Archive , Boucle sur cellule .vbs , Peut-on placer un Lisp dans le chargement automatique ? et 7 autres
-
Bonjour a tous, Pour info, c'est la première fois que je met le nez dans vbs/vba, soyez indulgent mais critique. Bon je n'arrive pas a mettre la dernière touche sur un script vbs, après moulte recherche et surtout après avoir testé plein de solutions différentes. Nous avons des fichiers créés par le Progiciel qui viens sur Autocad, qui sont des fichier .DAT, sous cette forme : J'arrive a les transformer en Excel, a les mettre en forme, trier, puis a les réunir. J'aimerais, avant de les réunir, procédé a une boucle qui me comptabilise les élément aillant le même code. J'arrive pour le moment a détecter la valeur et le nombre de la première occurrence, sélectionner la cellule suivante puis détecter son nombre. Je n'arrive pas a mettre en place une boucle sur la deuxième détection, afin que cela passe a la case suivante et ainsi de suite jusqu'à une cellule vide. Le bout de code qui me pose problème : '*** Comptage ' Nombre de cellules valeur D2, premiére occurence objCellsCodeStart = objSheet.range("D2").Value objSheet.range("F2") = objCellsCodeStart objCellsCodeStartCompteur = .WorksheetFunction.CountIf(.Range("D:D"), objCellsCodeStart) objSheet.range("F3") = objCellsCodeStartCompteur '*** boucle a faire avec cette partie de code objCellsCodeLoop = objSheet.range("D2").Offset(objSheet.range("F3").Value, 0) 'Ligne suivant la premiére occurence trouvé objSheet.range("F2").Offset(0, 1) = objCellsCodeLoop objCellsCodeLoopCompteur = .WorksheetFunction.CountIf(.Range("D:D"), objCellsCodeLoop) objSheet.range("G3") = objCellsCodeLoopCompteur '*** boucle a faire avec cette partie de code Le but étant d'inscrire : - F2 la première occurrence, F3 son nombre - G2 la deuxième occurrence, G3 son nombre - H2 ..., H3 ... - Etc........ La boucle doit s'arrêter quand il tombe sur la première cellule vide a la fin de la colonne D. Je vous joins aussi le script entier et 2 fichier DAT pour test. ExtractDAT.vbs CH1_A.dat CH2_A.dat CH3_A0.dat
-
Connaitre le dossier ou se trouve le Lisp en cours
SF.Designer a répondu à un(e) sujet de PATRICE69 dans Pour aller plus loin en LISP
Si tu as beaucoup de routine a charger, tu peux mettre dans ton fichier de chargement (.mnl), (defun load-lsp () (foreach file (vl-directory-files "C:/XXX" "*.lsp" 1) (load file (strcat file " did not load")) )) (load-lsp) Ca te chargera toute les routines de ton dossier. -
Lancement d'impression multiple et retour toggle
SF.Designer a répondu à un(e) sujet de SF.Designer dans LISP et Visual LISP
Bon voici le version pour le moment "définitive"... Print.dclPrint.lsp Je suis ouvert a toutes critiques qui me permettrai de fluidifier, voir accelerer ce code ! -
Lancement d'impression multiple et retour toggle
SF.Designer a répondu à un(e) sujet de SF.Designer dans LISP et Visual LISP
Bonjour Luna, (petite excuse, déplacement pro et j'ai zappé mon DD de dév) Alors voila le lisp et dcl (je sais que j'ai pas mal de taf de concaténation etc, et de mise en forme du dcl) Merkiiii PrintV2.lsp PrintV2.dcl -
Lancement d'impression multiple et retour toggle
SF.Designer a répondu à un(e) sujet de SF.Designer dans LISP et Visual LISP
J'en profite aussi pour vous demander comment ce fait il que sur cette fenêtre, Si je sélectionne NOIR, TEINTAGE et que je me rend compte qu'il ne me faut pas le NOIR, je le désélectionne. Le toggle NOIR me renvoi quand même la valeur 1 et non pas 0. -
Lancement d'impression multiple et retour toggle
SF.Designer a posté un sujet dans LISP et Visual LISP
Bonjour a tous, Petite demande afin de savoir si on peut écrire cela d'une autre façon (plus propre). La validation du OK de ma fenêtre de sélection (defun InitAllPrintOK () (cond((= PlotNB 1)(setq Plotstyle "NB")(PRT))) (cond((= PlotNBB 1)(setq Plotstyle "NBB")(PRT))) (cond((= PlotNBV 1)(setq Plotstyle "NBV")(PRT))) (cond((= PlotNBBV 1)(setq Plotstyle "NBBV")(PRT))) ; --- (cond((= PlotTT 1)(setq Plotstyle "TT")(PRT))) (cond((= PlotTTB 1)(setq Plotstyle "TTB")(PRT))) (cond((= PlotTTV 1)(setq Plotstyle "TTV")(PRT))) (cond((= PlotTTBV 1)(setq Plotstyle "TTBV")(PRT))) ; --- (cond((= PlotTTPRI 1)(setq Plotstyle "TTPRI")(PRT))) (cond((= PlotTTBPRI 1)(setq Plotstyle "TTBPRI")(PRT))) (cond((= PlotTTVPRI 1)(setq Plotstyle "TTVPRI")(PRT))) (cond((= PlotTTBVPRI 1)(setq Plotstyle "TTBVPRI")(PRT))) ; --- (cond((= PlotCO 1)(setq Plotstyle "CO")(PRT))) ) ; --------------------- (defun InitAllPrintCancel () (if (= userclick nil)(princ "\n--- Impression annulée ---\n")) (defun PRT () (vl-cmdf "._-PLOT" "_YES" "MODEL" PlotType PlotLimit "_MILLIMETERS" PlotOrientation "_NO" "_EXTENTS" Plotscale "_CENTER" "_YES" PlotStyle "_YES" "_WIREFRAME" "_NO" "_NO" "_YES")) ) Merci d'avance. -
Commande pour afficher la fenêtre de texte
SF.Designer a répondu à un(e) sujet de PATRICE69 dans AutoCAD 2020-2024
Bonjour, Pour ouvrir : (defun OpenWindowText () (textpage) ; Ouvrir fenêtre de texte ) Pour fermer : (defun CloseWindowText () (textscr) ; Basculer sur fenêtre de texte (vlax-invoke-method (vlax-get-or-create-object "WScript.Shell") "SendKeys" "%{F4}")) -
SF.Designer a modifié sa photo de profil
-
Création ligne personnalisé avec calcul de longueur
SF.Designer a répondu à un(e) sujet de elo675 dans AutoCAD 2020-2024
Ce doit être faisable avec : - Bloc + Paramètre d'étirement + Attribut avec récupération de la longueur -
Comment faire un bouton avec une image dans un DCL ?
SF.Designer a répondu à un(e) sujet de DenisHen dans Pour aller plus loin en LISP
Si ca peut aider, voici une fenêtre qui m'a bien pris la tête a aligner. Il faut vraiment tous mettre dans des colonnes et des lignes, des colonnes dans les lignes, des lignes dans les colonnes (piouf), puis jouer sur les marges et alignements ! Print.dcl -
Pour compléter REBCAO Je joins en plus mon fichier .LIN qui vas avec le DWG posté plus haut. CREATION TYPE DE LIGNE ------------------------------------------------------------------------------------------------------------- EAU_CHAUDE_EC,Eau chaude EC ---- EC ---- EC ---- EC ---- A,12.7,-5.08,["EC",STANDARD,S=2.54,U=0.0,X=-2.54,Y=-1.27],-5.08 ------------------------------------------------------------------------------------------------------------- 12.7 = longueur de la partie visible du trait (cette longueur est multipliée par l’échelle globale x échelle de type de ligne de l’objet) -5.08 = longueur de l’espace vide car valeur négative. Problème quel chiffre utiliser ? Utilisez 2.54 par caractère ; soit 5.08 pour 2 ; 7.62 pour 3 ; 10.16 pour 4 … [la définition du texte entre crochets] "EC",= le texte visible dans le trait Standard = nom du style de texte , vérifiez la police appliquée ! utilisez ARIAL.ttf ou ROMANS.SHX Si aucun style n'est défini, AutoCAD LT utilise le style courant. S=2.54 = échelle appliquée au texte U=0 ; = Angle du texte ici 0 donc texte toujour horizontal R= indique la rotation relative dans les exemples ci-dessous R est absent par défaut angle = 0 Position XY du texte. X= -2.54 = position en X du départ du texte Y = -1.27 = position en Y -5.08 : créer un espace après le texte @SF-Linetype.lin