EDIT : C'est obsolet, tous les liens sont morts :'(
Faudra que je vois pour retrouver le plugin qq part.
http://roget.biz/comment-arrondir-les-mots-les-mettre-en-spirale-ou-encore-vagues-sur-paint-net/
Mon blog fourre-tout de geekeries, tuto, script, culture, ...
EDIT : C'est obsolet, tous les liens sont morts :'(
Faudra que je vois pour retrouver le plugin qq part.
http://roget.biz/comment-arrondir-les-mots-les-mettre-en-spirale-ou-encore-vagues-sur-paint-net/
Installation
Installer Handbrake.
Télécharger libdvdcss.dll
Mettre la DLL dans le répertoire d'installation de Handbrake (par défaut : C:\Program Files\HandBrake )
Lancer Handbrake
Menu Tools, Preferences, onglet Advanced, chapitre DVD Reading : Décochez Disable LibDVDNav.
Configuration
Preset : Pour les DVD : H.264 MKV 576p25
Onglet Video : Quality : Constant Quality 20 RF
Onglet Audio : Configure Defaults. Ajouter English et Français. Bitrate à 192.
Onglet Subtitles : Configure Defaults. Burn-in behavior : none. Ajouter English et Français.
Utilisation
Sous Source, sélectionnez le premier title qui correspond a un épisode (regardez la durée) et cliquez sur Add to queue.
Recommencer pour chaque épisodes.
Puis cliquez sur Launch Queue.
Sources
https://www.macworld.com/article/3179350/home-bluray/how-to-rip-dvds-and-blu-ray-discs-with-makemkv-and-handbrake.html
https://www.macworld.com/article/3169375/videos/how-to-rip-dvds-with-handbrake.html
http://www.techradar.com/news/the-best-free-dvd-ripper
https://www.winxdvd.com/resource/install-handbrake-libdvdcss-to-rip-dvd.htm
Téléchargez PsTools site officiel, copie locale.
CRC32 : C06FADD0
MD5 : 6A82DC88F48A13C6625819D2D8FC0CC9
SHA1 : 25836633DC41784ABCC474CDC288025D16D155BA
SHA256 : 91C36D9794F031F9756C4B2C2DBFD315C83E05BE13FD3932CBA878794B4E828E
ouvrez un CMD et exécutez la commande suivante
psshutdown -d -t XXX
où XXX est le temps en seconde que vous voulez attendre avant la veille.
Pour annuler la mise en veille avant la fin du temps imparti :
psshutdown -a
Versions
Windows 7 x64 - SP1 ENG
PsTools : 2.45
Source
Microsoft Doc
Pour recevoir tous les emails qu'on enverrai sur votre nom de domaine il faut définir une adresse "catchall".
Je vais montrer ici un exemple avec un utilisateur "legit" qui aura sa propre boite email et un autre qui recevra tout le reste.
Créer 2 nouveaux utilisateurs.
adduser catchall adduser autre_utilisateur
vi /etc/postfix/virtual
@domain.ch catchall autre_utilisateur@domain.ch autre_utilisateur
postmap /etc/postfix/virtual
vi /etc/postfix/main.cf
virtual_alias_maps = hash:/etc/postfix/virtual
service postfix reload
Un plugin Firefox (ou Chrome) vous permettra de lancer un téléchargement sur votre NAS en deux click depuis votre navigateur.
Le programme DS3 Tool dont j'ai déjà parlé ici ne fonctionne plus car au démarrage il accède à un site qui n'est plus en ligne.
Qu'à cela ne tienne, il existe une version du programme en mode offline.
Récupérez-le ici, ici ou chez moi.
File: MotionJoy_offline_071001_signed.zip
CRC32 : C674579B
MD5 : 2610ADF07D5560B1B3361FE0B7F89B52
SHA1 : 48FCC8D1950D42080DC925385B222A3115B33935
SHA256 : 3A3C9D10DF7E801CB0D4AF0AE715F84D17E1E888CD182BAC08A1CCF85A33CC6F
Si vous aviez déjà le programme original installé, désinstallez-le.
Installez MotioninJoy_071001_signed, mais ne le démarrez pas tout de suite.
Copiez le contenu du dossier offline dans le dossier ds3 du répertoire d'installation (Par défaut dans C:\Program Files\MotioninJoy).
Créez-vous un raccourci vers DS3_Tool_Local.exe car c'est lui que vous devrez démarrer maintenant.
Re-configurez le programme comme expliqué dans mon premier billet et tout devrait rouler.
Source
Youtube : Motioninjoy - How To Fix Error: The request could not be satisfied
Versions
Windows 7 x64 - SP1 ENG
DS3 Tool 0.7.1001
Driver XBox : Xbox 360 Accessories Software 1.2
Avant il fallait installer un programme tiers pour afficher un petit widget sur les claviers Logitech avec la liste des gens qui parlent sur Teamspeak.
Depuis TS3 c'est un plugin officiel que vous pouvez activer depuis Outils, Options, Compléments.
Cliquez sur Browse online et chercher G15.
DisplayFusion est un super programme qui permet de faire tout un tas de chose pratique dès qu'on possède plus d'un moniteur, comme afficher des fonds d'écran différents sur les deux écrans ou utiliser des raccourcis clavier pour déplacer les fenêtres.
Il est hyper pratique et ergonomique, j'ai même acheté la version payante.
Mais il me posait de gros problème avec Eclipse, l'IDE bien connu des programmeurs. En effet lorsque DisplayFusion était activé j'avais des erreurs dans Eclipse dès que je donnais le focus à l'éditeur de texte. En gros : cliquer sur une classe dans l'arborescence puis cliquer dans la zone d'édition provoquait systématiquement une erreur popup ce qui devenait très très vite énervant.
Unhandled event loop exception. No more handles.
J'ai finalement trouvé la solution : il faut demander à DisplayFusion de ne pas appliquer les hooks à Eclipse.
Un article un peu différent des mes habituels, je vais parler de bouquins. Mais ne vous inquiétez pas, ça reste dans l'univers geek.
J'ai commencé récemment le cycle Fondation d'Isaac Asimov et - au lieu de vous conseiller vivement de le lire (mais je vous conseille quand même vivement de le lire...) - je veux simplement parler de l'ordre de lecture.
Je n'en suis qu'au deuxième tome, les faits que je vais énoncer ne sont pas de moi mais ont été glanés après quelques recherches sur internet.
Les Cycle de Fondation et Cycle des robots sont liés entre eux et terminer un cycle peut spoiler l'autre.
En ce qui concerne les Robots et Fondations je vous conseille vivement de commencer par exemple un des deux cycles (Robots ou Fondation) et de vous arrêter au 3 (où à la limite au 4) de passer à l'autre cycle et de revenir finir celui que vous aviez commencé. Ca vous permettra d'avoir un histoire formidable (encore plus si possible) sans rien vous spoiler (par exemple ne pas lire le dernier de fondation avant d'avoir fini le... 4 je crois des robots, ou bien ne pas lire "prélude à fondation" et lire tout ça après) Croyez moi il n'y a pas de meilleur moyen (à mon humble avis de grand prêtre ordonnateur de la secte des adorateurs d'Asimov) d'entrer dans ce qui est un des plus beau joyaux résultant de l'esprit d'un être humain.source
le mieux ça aurai été les 3 premier du cycle A (celui de ton choix) puis les 3 ou 4 premier de cycle B (l'autre) et ensuite tu finis fondation ou robot :)source
Pour ajouter un script au menu contextuel de Windows (click-droit sur un fichier ou un dossier) il va falloir passer par le registre.
Créez un fichier .reg comme ci-dessous, exécutez-le et les modifications apparaitront instantanément sans avoir besoin de rebooter.
Avant de démarrer, notez que vous pouvez ajouter un script lors d'un click-droit sur :
- Un dossier
- Tous les fichiers
- Un fichier d'un certain type
- Une zone vide dans un dossier (le "directory background")
et qu'il y a une différence assez importante entre :
- Ajouter un script
- Ajouter un sous-menu qui contiendra plusieurs scripts (comme sur ma capture d'écran au dessus)
Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\Directory\shell\NOM_DU_SCRIPT] @="Nom du script" [HKEY_CLASSES_ROOT\Directory\shell\NOM_DU_SCRIPT\command] @="C:\\CHEMIN_DU_SCRIPT\\script.bat \"%1\""Le %1 enverra le chemin complet du dossier sur lequel vous avez cliqué en paramètre.
Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\Directory\Background\shell\NOM_DU_SCRIPT] @="Nom du script" [HKEY_CLASSES_ROOT\Directory\Background\shell\NOM_DU_SCRIPT\command] @="C:\\CHEMIN_DU_SCRIPT\\script.bat \"%V\""Notez l'utilisation de %V à la place de %1 pour passer le chemin du dossier courant.
Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\*\shell\NOM_DU_SCRIPT] @="Nom du script" [HKEY_CLASSES_ROOT\*\shell\NOM_DU_SCRIPT\command] @="C:\\CHEMIN_DU_SCRIPT\\script.bat \"%1\""
Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\regfile\shell\NOM_DU_SCRIPT] @="Nom du script" [HKEY_CLASSES_ROOT\regfile\shell\NOM_DU_SCRIPT\command] @="C:\\CHEMIN_DU_SCRIPT\\script.bat \"%1\""
Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\Directory\shell\NOM_DU_MENU] "MUIVerb"="Nom du menu" "SubCommands"="NOM_DU_SCRIPT_1;NOM_DU_SCRIPT_2" [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\NOM_DU_SCRIPT_1] @="Nom du script 1" [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\NOM_DU_SCRIPT_1\command] @="C:\\CHEMIN_DU_SCRIPT\\script_1.bat \"%1\"" [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\NOM_DU_SCRIPT_2] @="Nom du script 2" [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\NOM_DU_SCRIPT_2\command] @="C:\\CHEMIN_DU_SCRIPT\\script_2.bat \"%1\""
[HKEY_CLASSES_ROOT\Directory\Background\shell\NOM_DU_MENU] "MUIVerb"="Nom du menu" "SubCommands"="NOM_DU_SCRIPT_1;NOM_DU_SCRIPT_2"
Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\Directory\Background\shell\NOM_DU_MENU] "MUIVerb"="Nom du menu" "SubCommands"="NOM_DU_SCRIPT_1_BACK;NOM_DU_SCRIPT_2_BACK" [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\NOM_DU_SCRIPT_1_BACK] @="Nom du script 1" [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\NOM_DU_SCRIPT_1_BACK\command] @="C:\\CHEMIN_DU_SCRIPT\\script_1.bat \"%V\"" [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\NOM_DU_SCRIPT_2_BACK] @="Nom du script 2" [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\NOM_DU_SCRIPT_2_BACK\command] @="C:\\CHEMIN_DU_SCRIPT\\script_2.bat \"%V\""
"SubCommands"="NOM_DU_SCRIPT_1;|;NOM_DU_SCRIPT_2"
Le jeu Beyond Good & Evil peut subir quelques problèmes lorsqu'on y joue sur Windows 7, comme les cut-scene vidéo qui avancent trop vite et dont le son est décalé, ou les icônes d'action qui clignotent dans tous les sens.
J'ai modifié certains paramètres Nvidia afin de les résoudre.
Ouvrez le panneau de contrôle Nvidia via le menu Windows, Control panel, Nvidia Control panel.
Allez au menu 3D Settings, Manage 3D settings, onglet Program Settings et sélectionnez BGE. Chez moi il s'appelait "BANG! - gunship Elite(bge.exe)"
Il va falloir installer OpenVPN sur votre serveur Linux et générer les certificats puis installer le client OpenVPN sur votre machine Windows.
vi /etc/apt/sources.list
deb http://archive.debian.org/debian squeeze main deb http://archive.debian.org/debian squeeze-lts main
vi /etc/apt/apt.conf
Acquire::Check-Valid-Until false;
apt-get upgrade apt-get update
apt-get install openvpn apt-get install network-manager-openvpn-gnome
mkdir /etc/openvpn/easy-rsa/ cp /usr/share/doc/openvpn/examples/easy-rsa/2.0/* /etc/openvpn/easy-rsa #passer en root su - cd /etc/openvpn/easy-rsa . ./vars ./clean-all ./build-ca ./build-key-server server ./build-key client1 ./build-dh exit cp /etc/openvpn/easy-rsa/keys/ca.crt /etc/openvpn cp /etc/openvpn/easy-rsa/keys/dh1024.pem /etc/openvpn cp /etc/openvpn/easy-rsa/keys/server.crt /etc/openvpn cp /etc/openvpn/easy-rsa/keys/server.key /etc/openvpn
vi /etc/openvpn/tun0.confFichier complet
openvpn --config /etc/openvpn/tun0.conf --verb 6
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADEoù 10.8.0.0 est le sous-réseau créé précédemment et eth0 le nom de la carte réseau de votre serveur par lequel passe le trafic internet.
iptables -t nat -L -n -v
client dev tap dev-node "tap0" ca ca.crt cert client1.crt key client1.keyLancer le client OpenVPN et se connecter
J'ai récemment acheté un NAS Synology DS415+ afin d'y stocker ma musique, mes photos et mes vidéos, attendez-vous donc à plusieurs posts dédiés à cette plateforme, je suis en plein paramétrage.
Première déconvenue : L'application Photo station ne permet pas de paramétrer l'endroit où sont stocké les photos, une hérésie !
Par défaut il regarde dans /volume1/photo
On doit surement pouvoir bidouiller des fichiers de configuration utilisés par l'appli pour modifier ça, mais la solution simple (mais temporaire ?) que j'ai retenu était de faire un lien symbolique vers mes photos.
Tout d'abord arrêtez le processus, pour cela rendez-vous, depuis l'interface web, dans le Centre de paquet, sélectionnez Photo station, bouton Action, Stop.
Ensuite, depuis le panneau de configuration, Dossiers partagés, supprimez le répertoire "photo".
Accédez au NAS en SSH (depuis Putty par exemple) et rendez vous dans le volume où vous souhaitez stocker vos photo, par exemple volume1, puis créez un lien symbolique pointant sur votre dossier actuel.
cd /volume1 sudo ln -s /volume1/DOSSIER_PHOTO photo sudo chmod -R 777 /volume1/DOSSIER_PHOTOImportant, mettez les droits à 777 sur la racine du dossier de photo, se contenter de les mettre sur le lien symbolique n'aura pas d'effet.
La version de CyanogenMOD que j'ai installé sur ma tablette Samsung Galaxy Tab Pro 12 est géniale mais elle souffre d'un défaut : la rotation automatique de l'écran ne fonctionne pas.
C'est un bug connu et je crois qu'ils ne l'ont toujours pas réglé.
Pour palier au problème il existe la petite application Set Orientation
Elle ne demande aucune permission en particulier et fonctionne a merveille.
Le très léger défaut que je lui trouve c'est qu'elle ne garde pas en mémoire les dernières orientations utilisées, il faut à chaque fois scroller pour trouver la bonne.
En voulant installer une Debian x64 dans une machine virtuelle depuis Windows 7 j'ai obtenu ce message d'erreur : VT-X/AMD-V hardware acceleration has been enabled, but is not operational. Please ensure that you have enabled VT-x/AMD-V properly in the BIOS of your host computer
1. Installer les drivers Xbox en 1er, DS3 Tool va se servir de ceux-ci. (via Microsoft, via pumbaa.ch)
File: Xbox360_64Eng.exe
CRC-32: 04f0468f
MD4: f6fbefc0e1c7e3032b6b5338f6613f03
MD5: 4c7fbad5bbebc0d3807129092a1de4b9
SHA-1: 00f7246437c53f3aba5516ac3fc572181c24c666
2. Installer DS3 Tool (via xinputer, via pumbaa.ch)
File: MotioninJoy_071001_signed.exe
CRC-32: 1e840493
MD4: 6b14396f91e0a087b6c3cf6f39f1fe8e
MD5: 5ae1bf5713cf1f0d682561d34779214d
SHA-1: 2d1c95e94b86e2a465ce6e39858ab612dc2fafd5
3. Lancer DS3 Tool
4. Brancher la (les) manette(s) avec le câble USB (je ferai un 2ème tuto avec bluetooth si j'y arrive)
5. Dans Driver Manager, sélectionner les manettes et cliquer sur Load drivers.
Windows va mettre un message d'alerte qu'il faut accepter.
Après un petit temps d'attente vous devriez voir un Vu s'afficher à droite.
6. Dans Profiles, sélectionner une manette et cliquer sur Enable pour que joysticks fonctionnent. Recommencer pour chaque manette.
Notez qu'une fois l'installation terminée il ne semble pas requis que DS3 Tool soit lancé pour que les manettes fonctionnent.
EDIT : A chaque redémarrage de la machine il faut lance DS3 Tool, activez les manettes que vous voulez utiliser et ensuite vous pourrez fermer le programme.
EDIT2 : Le programme ne fonctionne plus en l'état, allez voir mon deuxième billet pour le refaire marcher.
Sources
JV #17, page 72
Versions
Windows 7 x64 - SP1 ENG
DS3 Tool 0.7.1001
Driver XBox : Xbox 360 Accessories Software 1.2
Je cherchais un moyen de créer un fichier zip sous Windows sans passer par un programme tiers (java, exe, python, ...).
Je pensais y arriver uniquement en batch mais en fait il faut faire quelques lignes de VB Script.
Le fichier batch :
@echo off REM ----- Setup ----- set SRC_DIR=C:\Temp\FolderToZip\ set VBS_FILE=.\zipIt.vbs set ARCHIVE_FOLDER=c:\Temp\ mkdir %ARCHIVE_FOLDER% 2> nul set DATE_TIME=%DATE:~-4%.%DATE:~3,2%.%DATE:~0,2%-%TIME:~0,2%.%TIME:~3,2%.%TIME:~6,2% set ZIP_FILE="%ARCHIVE_FOLDER%folderZipped_%DATE_TIME%.zip" REM ------ end ------- REM ----- Execute VBS file (creating ZIP file) ----- CScript %VBS_FILE% %SRC_DIR% %ZIP_FILE%
REM Récupération des arguments Set args = WScript.Arguments srcFolder = args(0) REM Dossier source, à zipper zipFilePath = args(1) REM Chemin du fichier zip à créer REM Récupération des chemins absolus set fso = CreateObject("Scripting.FileSystemObject") srcFolder = fso.GetAbsolutePathName(srcFolder) zipFilePath = fso.GetAbsolutePathName(zipFilePath) REM Magie noire... REM Création du fichier zip (vide) CreateObject("Scripting.FileSystemObject").CreateTextFile(zipFilePath, True).Write "PK" & Chr(5) & Chr(6) & String(18, vbNullChar) Set objShell = CreateObject("Shell.Application") Set zip = objShell.NameSpace(zipFilePath) Set source = objShell.NameSpace(srcFolder) REM REMplissage du fichier zip REM Malheureusement cette opération est non-bloquante zip.CopyHere source.Items REM il faut donc attendre jusqu'à qu'elle soit terminée. REM Pour cela on boucle tant que le nombre de fichiers dans le zip n'est pas égal au nombre de fichiers dans le dossier source. REM http://stackoverflow.com/questions/149956/how-to-determine-when-copy-finishes-in-vbscript Do Until zip.Items.Count = source.Items.Count WScript.Sleep 100 WScript.Echo "Copie en cours : " & zip.Items.Count & "/" & source.Items.Count Loop
Windows was unable to add one or more empty directories to the Compressed (zipped) Folder.
@echo off REM ----- Setup ----- set SRC_DIR=C:\Temp\FolderToZip\ set VBS_FILE=.\zipIt.vbs set ARCHIVE_FOLDER=c:\Temp\ mkdir %ARCHIVE_FOLDER% 2> nul set DATE_TIME=%DATE:~-4%.%DATE:~3,2%.%DATE:~0,2%-%TIME:~0,2%.%TIME:~3,2%.%TIME:~6,2% set ZIP_FILE="%ARCHIVE_FOLDER%folderZipped_%DATE_TIME%.zip" REM ------ end ------- REM ------ Création du fichier VBS à chaud ----- REM Récupération des arguments echo Set args = WScript.Arguments>%VBS_FILE% echo srcFolder = args(0)>>%VBS_FILE% REM Dossier source, à zipper echo zipFilePath = args(1)>>%VBS_FILE% REM Chemin du fichier zip à créer REM Récupération des chemins absolus echo set fso = CreateObject("Scripting.FileSystemObject")>>%VBS_FILE% echo srcFolder = fso.GetAbsolutePathName(srcFolder)>>%VBS_FILE% echo zipFilePath = fso.GetAbsolutePathName(zipFilePath)>>%VBS_FILE% REM Magie noire... REM Création du fichier zip (vide) echo CreateObject("Scripting.FileSystemObject").CreateTextFile(zipFilePath, True).Write "PK" ^& Chr(5) ^& Chr(6) ^& String(18, vbNullChar)>>%VBS_FILE% echo Set objShell = CreateObject("Shell.Application")>>%VBS_FILE% echo Set zip = objShell.NameSpace(zipFilePath)>>%VBS_FILE% echo Set source = objShell.NameSpace(srcFolder)>>%VBS_FILE% REM REMplissage du fichier zip REM Malheureusement cette opération est non-bloquante echo zip.CopyHere source.Items>>%VBS_FILE% REM il faut donc attendre jusqu'à qu'elle soit terminée. REM Pour cela on boucle tant que le nombre de fichiers dans le zip n'est pas égal au nombre de fichiers dans le dossier source. REM http://stackoverflow.com/questions/149956/how-to-determine-when-copy-finishes-in-vbscript echo Do Until zip.Items.Count = source.Items.Count>>%VBS_FILE% echo WScript.Sleep 100>>%VBS_FILE% echo WScript.Echo "Copie en cours : " ^& zip.Items.Count ^& "/" ^& source.Items.Count>>%VBS_FILE% echo Loop>>%VBS_FILE% REM ------ end ------- REM ----- Execute VBS file (creating ZIP file) ----- CScript %VBS_FILE% %SRC_DIR% %ZIP_FILE% REM ----- Suppression du fichier VBS ------ del %VBS_FILE%
Ça ne va pas arriver souvent, vu que je prône l'utilisation de logiciels libres, mais voici un script VBA pour Excel que j'ai du faire au boulot.
La tâche : j'ai une feuille contenant un tas de rapport de ventes, les uns à la suite des autres, séparés par une ligne vide à chaque fois.
Il fallait splitter chaque rapport dans une nouvelle feuille.
Vu que j'ai du écrire 3 lignes de VBA dans ma vie, il y a plus de 15 ans, j'étais passablement rouillé.
Tellement rouillé qu'en fait j'ai juste été pomper des bouts de codes à droite à gauche pour les mélanger ensemble et espérer que ça marche.
Et ça marche !
Par contre pour le style, on repassera. J'ai tenté de nettoyer le code après coup mais il reste probablement des horreurs qui feront bondir les puristes.
Fichier source
Résultat final
Algorithme en 2 mots
Je duplique la feuille de base, je cherche la 1ère ligne vide, je copie la plage jusqu'à la ligne vide dans une nouvelle feuille au nom du client, je supprime la plage sélectionnée et je recommence.
A la fin je supprime la feuille dupliquée.
Code source
Sub split() Dim firstPage As Worksheet Set firstPage = Sheets(1) ' La page de référence, à parser et spliter ' https://msdn.microsoft.com/en-us/library/office/ff837784.aspx firstPage.Copy After:=firstPage ' On copie la page de base Dim copyPage As Worksheet Set copyPage = Sheets(2) ' La page copiée, qu'on peut modifier copyPage.Name = "temp" Dim nextBlankRow As Long nextBlankRow = firstBlankRow(copyPage) While (nextBlankRow > 0) Dim clientName As String clientName = findClientName(copyPage.Range("A:A")) Sheets.Add After:=Sheets(Sheets.Count) ' crée une nouvelle feuille et l'ajoute à la fin du classeur Dim newPage As Worksheet Set newPage = Sheets(Sheets.Count) ' On récupère la feuille nouvellement créée newPage.Name = clientName ' renome la nouvelle feuille Dim nbCol As Long nbCol = copyPage.UsedRange.Columns.Count Dim currentRange As Range Set currentRange = copyPage.Range("A1", copyPage.Cells(nextBlankRow, nbCol)) ' http://stackoverflow.com/questions/21648122/excel-vba-copy-range-and-paste-values-in-another-sheets-specific-range currentRange.Copy ' Copie des valeurs de la 1ère page newPage.Range("A1").PasteSpecial xlPasteValues ' on colle dans la nouvelle feuille newPage.Columns.AutoFit ' ajuster la taille des colones : http://www.extendoffice.com/documents/excel/1174-excel-split-data-into-multiple-worksheets-based-on-column.html newPage.Range("A1").Select ' lâche la sélection currentRange.Delete ' Supprime la plage pour pouvoir recommencer avec la suivante nextBlankRow = firstBlankRow(copyPage) Wend Application.DisplayAlerts = False copyPage.Delete Application.DisplayAlerts = True firstPage.Select firstPage.Range("A1").Select End Sub Function findClientName(fullCol As Range) As String For Each cell In fullCol.Cells If cell.Value <> "" Then findClientName = cell.Value Exit For End If Next End Function Function firstBlankRow(ws As Worksheet) As Long 'returns the row # of the row after the last used row 'Or the first row with no data in it 'http://stackoverflow.com/questions/12497804/finding-first-blank-row-then-writing-to-it Dim rngSearch As Range, cel As Range With ws Set rngSearch = .UsedRange.Columns(1).Find("") '-> does blank exist in the first column of usedRange If Not rngSearch Is Nothing Then Set rngSearch = .UsedRange.Columns(1).SpecialCells(xlCellTypeBlanks) For Each cel In rngSearch If Application.WorksheetFunction.CountA(cel.EntireRow) = 0 Then firstBlankRow = cel.Row Exit For End If Next Else '-> no blanks in first column of used range If Application.WorksheetFunction.CountA(Cells(.Rows.Count, 1).EntireRow) = 0 Then '-> is the last row of the sheet blank? '-> yeap!, then no blank rows! firstBlankRow = -1 'MsgBox "Whoa! All rows in sheet are used. No blank rows exist!" Else '-> okay, blank row exists firstBlankRow = .UsedRange.SpecialCells(xlCellTypeBlanks).Row + 1 End If End If End With End Function
Il existe plusieurs moyens de formater (flasher) un smartphone, mais quand l'écran est intégralement détruit et qu'on ne voit rien c'est tout de suite plus dur.
Voici la méthode que j'ai utilisé.
CRC-32: 61e62c1a MD4: 7ce2c4ce96c12d3e1659b5a722fe41b1 MD5: ed374601e368b99aab51a3b94c2bf1ca SHA-1: 795c21b9ee81aff747ef6b9324b1054fa55a8056
CRC-32: c48acb43 MD4: e41817ce4abf68029e320c272e415d82 MD5: 74370beacf0cb8676f7efe654cc6bec9 SHA-1: 2f1216318ea8dfa8d6df5ee929f1e50f541c301d
L'invite de commande (cmd.exe) de Windows utilise un encodage pourri particulier.
Il s'agit de OEM 850.
Vous pouvez le vérifier en tapant la commande
chcp
Si vous souhaitez trier alphabétiquement toutes les feuilles d'un document LibreOffice de type Classeur vous pouvez le faire avec une macro Python.
Notez que vous aurez besoin d'une machine virtuelle Java idéalement en version 6 et en 32 bits (la FAQ dit que la 7 peut poser problème).
Rendez-vous dans le répertoire des scripts python de LibreOffice, par défaut dans
C:\Program Files (x86)\LibreOffice 4\share\Scripts\python
Créez un fichier SheetSort.py
def sheets_sort():
doc = XSCRIPTCONTEXT.getDocument()
sheets = doc.getSheets()
sheetnames = sorted( sheets.getElementNames() )
for i, sheet in enumerate( sheetnames ):
sheets.moveByName( sheet, i)
Dans LibreOffice, ouvrez le menu Tools, Macros, Organize Macros, Python.
Dépliez LibreOffice Macros et vous devriez voir SheetSort. Sélectionnez la méthode sheets_sort et cliquez sur Run.
Et voilà, les feuilles sont triées.
LibreOffice version 4.4.4.3 English
Java version JRE 6u45 i586
Windows 7 Pro 64 bits - SP1
Sources :
La macro : https://forum.openoffice.org/en/forum/viewtopic.php?f=20&t=49828
Emplacement des scripts : https://tmtlakmal.wordpress.com/2013/08/11/a-simple-python-macro-in-libreoffice-4-0/
LibreOffice et Java : https://wiki.documentfoundation.org/Documentation/Install/Linux/fr
Suite au dernier article vous vous demandiez peut-être "oui mais, et pourquoi ne pas passer à Windows 10 ?"
J'ai personnellement des tas de raison, mais en voici une rédhibitoire : Les conditions d'utilisation abusives de Windows 10.
EDIT : Une partie des mouchard est désactivable dans les options d'installation (bien camouflées), mais
"En définitive, l’utilisateur qui se lance dans ces produits et services doit avoir conscience que des informations sont envoyées, plus ou moins nombreuses en fonction de certains choix. Il peut désactiver des services ou des fonctionnalités ainsi qu’une partie des informations statistiques, mais il existe une partie incompressible sans laquelle les produits ne fonctionneront pas. Le problème reste que beaucoup ne liront pas ces conditions et que d’autres se demanderont quel choix ils peuvent bien avoir quand il s’agit de passer par un éditeur aussi « incontournable »."
Source : http://www.numerama.com/magazine/33357-windows-10-microsoft-et-vos-donnees-privees-ce-que-vous-devez-savoir.html
Source : http://www.nextinpact.com/news/95400-microsoft-unifie-declarations-confidentialite-ses-services.htm
Source : https://tuxicoman.jesuislibre.net/2015/07/linstallation-par-defaut-de-windows-8-1-ou-comment-legalement-autoriser-les-usa-a-nous-espionner.html
EDIT 2024
Micode sur Youtube : La trouvaille scandaleuse d'un chercheur sur Windows 11
MD5 : BA07172487AAED1C8A8C9A807F96F112 SHA1 : 1E6465F8EBA701B62FDB0D8F1E6BD62F988F7835
SHA1 : 76CB0DEF3EE130F4BDDB6893ACBCD6A7284F336B
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tasks\
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tree\Microsoft\Windows\Setup\
Petit problème très spécifique :
Impossible de me logger à mon compte sur un forum NodeBB depuis Google Chrome car j'obtiens un message "Forbidden".
Mais aucun problème depuis FireFox ou depuis Chrome dans une VM.
Il a fallu que je lance CCleaner et que je coche tout sous Google Chrome dans l'onglet Application (sauf Saved Passwords) et que je lance un clean pour que je puisse me relogger.
EDIT :
Je suppose que ça venait des Saved Form Information.
Il faut impérativement cocher Session et Saved Form Information (les Cookies ne semblent pas responsables)