Regrouper des mots
re,
Si un pro passe..... đ Ha bon, tu n'es pas pro ?
tu as de la chance 13 secondes c'est ultra rapide le mien il a mis 4,30 minutes 19534 lignes.
je vais essayer ce nouveau code...
Quand on a une cellule vide, on peut supprimer la ligne de façon à avoir 5 colonnes remplies.
Quel code je dois ajouter pour supprimer la ligne au lieu de laissé une case vide ?
merci
j'aurais besoin d'une autre petite macro
on saisi le mot en français et j'ai l'équivalence sur une ligne avec les 4 langues
@ bientĂŽt
Bonsoir âŠ
Comme xorsankukai (salut
Dans le fichier joint, je donne une autre façon de procĂ©der mais, comme toujours, ce nâest quâun exemple avec le contexte choisi ! Ce sera Ă chaque fois une autre histoire avec un autre contexte !
Ă lâactivation de lâonglet de regroupement [TR] :
Private Sub Worksheet_Activate()
If Application.CountA([TR]) > 0 Then [TR].Delete
Application.ScreenUpdating = 0
[ç1].Copy [TR].Item(1, 1) 'FRANĂAIS et ALLEMAND
[ç2].Columns(2).Copy [TR].Item(1, 3) 'ITALIEN
[ç3].Columns(2).Copy [TR].Item(1, 4) 'ANGLAI
[ç4].Columns(2).Copy [TR].Item(1, 5) 'ESPAGNOL
End Sub Nota : je reste fidĂšle au langage de base (classe Range)
Remarque : « Le silence est la vertu des sots ! ». Bacon ne devait pas fréquenter beaucoup de monde pour affirmer cela. Beaucoup devraient se taire plutÎt que de proférer des sottises
Je préfÚre la citation de P. Dac : « Si les points de suspension pouvaient parler, ils pourraient en dire des choses et des choses ! »
Oups, j'oublais : il suffit de copier tes listes dans les tableaux correspondants et 19 999 lignes ne devraient pas poser de problĂšme.
Re,
Bonjour Ordonc,
Je crois que je me suis compliquĂ© la vie, je suis partie du principe que la liste des mots en français pouvait diffĂ©rer d'une feuille Ă l'autre oĂč ne pas ĂȘtre dans le mĂȘme ordre, d'oĂč la boucle sur toute les feuilles et l'utilisation du dico pour supprimer les doublons.
Mais cela implique ensuite une recherche de correspondance sur toutes les feuilles (13 000 lignes ...
@Geoffroy :
Et non, je ne suis pas un pro, j'apprends Ă l'aide du forum et du partage de ses membres,
on saisi le mot en français et j'ai l'équivalence sur une ligne avec les 4 langues
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range("A2")) Is Nothing Then
cancel = True
Range("B2") = IIf(IsError(Application.VLookup(Target, Sheets("ESPAGNOL").ListObjects("tbEspagnol").DataBodyRange, 2, False)), "", Application.VLookup(Target, Sheets("ESPAGNOL").ListObjects("tbEspagnol").DataBodyRange, 2, False))
Range("C2") = IIf(IsError(Application.VLookup(Target, Sheets("ITALIEN").ListObjects("tbItalien").DataBodyRange, 2, False)), "", Application.VLookup(Target, Sheets("Italien").ListObjects("tbItalien").DataBodyRange, 2, False))
Range("D2") = IIf(IsError(Application.VLookup(Target, Sheets("ANGLAIS").ListObjects("tbAnglais").DataBodyRange, 2, False)), "", Application.VLookup(Target, Sheets("ANGLAIS").ListObjects("tbAnglais").DataBodyRange, 2, False))
Range("E2") = IIf(IsError(Application.VLookup(Target, Sheets("ALLEMAND").ListObjects("tbAllemand").DataBodyRange, 2, False)), "", Application.VLookup(Target, Sheets("ALLEMAND").ListObjects("tbAllemand").DataBodyRange, 2, False))
End If
End SubOn peut par ailleurs se passer de VBA....
- =SIERREUR(RECHERCHEV($A$2;tbEspagnol;2;FAUX);"")
- =SIERREUR(RECHERCHEV($A$2;tbItalien;2;FAUX);"")
- =SIERREUR(RECHERCHEV($A$2;tbAnglais;2;FAUX);"")
- =SIERREUR(RECHERCHEV($A$2;tbAllemand;2;FAUX);"")
Cordialement,
Bonjour,
Et bien chapeau monsieur, vous ĂȘtes douĂ©
Je vais essayer tous ces codes super intéressants
Merci Ă vous deux Ordonc et xorsankukai
@bientĂŽt
Re âŠ
Merci pour ton retour.
A toutes fin utiles, simple remarque : quand on se retrouve avec une grande quantitĂ© de formules, la durĂ©e de leur mise Ă jour peut sâallonger grandement mais en VBA on peut Ă©viter cela.
En gĂ©nĂ©ral (en fonction du contexte), quand jâai une ligne du type R.Formula⊠=⊠voire = Application.WorsheetFunction âŠ, je la fais suivre de R = R.Value pour Ă©viter les recalculs gourmands en minutes.
Sans VBA, je peux aussi passer par un Copier (Ctrl C) suivi dâun Coller les Valeurs (pas Ctrl V) mais moins pratique avec des formules Ă©parpillĂ©es parmi lesquelles il est plus intĂ©ressant de les garder telles quelles.
@ xorsankukai
Bonjour et un grand merci pour votre aide,
Ca fonctionne super bien
Mais j'aurais préféré une USF si c'est possible, ci-joint modÚle sur fichier
1- On saisie un mot dans l'une des cases:
Français - Allemand - Anglais - Espagnol - Italien
2-On clic sur TRADUIRE Ă les mots apparaissent dans les cases
Bonne journée
@ Ordonc
" A toutes fin utiles, simple remarque : quand on se retrouve avec une grande quantitĂ© de formules, la durĂ©e de leur mise Ă jour peut sâallonger grandement mais en VBA on peut Ă©viter cela.
En gĂ©nĂ©ral (en fonction du contexte), quand jâai une ligne du type R.Formula⊠=⊠voire = Application.WorsheetFunction âŠ, je la fais suivre de R = R.Value pour Ă©viter les recalculs gourmands en minutes.
Sans VBA, je peux aussi passer par un Copier (Ctrl C) suivi dâun Coller les Valeurs (pas Ctrl V) mais moins pratique avec des formules Ă©parpillĂ©es parmi lesquelles il est plus intĂ©ressant de les garder telles quelles. "Excellent,
merci Ă vous
@bientĂŽt

