Problème de mise en forme qui ne suit pas

Bonjour Gigi

Comme ça, je ne peux pas trouver le bug. Pourrais-tu m'indiquer d'une par la version d'excel que tu as boulot et si c'est possible la ligne sur laquelle il pante ?

Cela m'aiderait beaucoup pour te dépanner.

A+

Dan

pour la version, je vais regarder ca demain matin, au pire lundi (je bosse pas demain aprem)

La ligne qui foire est en gras ici :

' Sélection du nom de destination et recopie du texte

Sheets(NomFeuille).Select

ActiveSheet.Range(NomCellule).Select

ActiveSheet.Paste

Application.CutCopyMode = False

Ce qui est bizarre, c'est que ca plante en anglais pas au même endroit que le francais (alors que chez moi, sous office 2003, ca plante pas du tout)

Dan (et les autres sont les bienvenus aussi),

voila un (tout) petit extrait de mon fichier :

https://www.excel-pratique.com/~files/doc/dan.xls

Il y a un p'tit soucis avec les mises en forme (on en revient au sujet initial) :

tans ma feuille "textes, j'ai toutes mes mises en formes (des textes sur fond en couleur, textes avec certains mots en gras et rouge,...) mais certaines mises en forme ne suivent pas, comme c'est le cas sur la feuille "notice" en A11, C35, B62.

1ere case : certains mots du textes devraient ressortir en gras et rouge

2e case : la case contient un lien hypertexte : est ce ca qui "annule" la mise en forme?

3e case : c'est un texte plassique, avec fond coloré et certaines bordures (comme beaucoup d'autres textes, qui eux marchent bien...)

Il y a certes la solution "intégrer la mise en forme directement dans les cellules de "notice", mais pour le texte en A11, je ne vois pas comment ca pourrait se faire...

Salut le forum

Le problème est du à la fusion de tes cellules.

Tu vas devoir, modifier la mise en page de ta feuille "Notice"

Mytå

ah, merci Myta... je me doutais qua ca allait poser problème...

Est tu sur(e) de toi? car j'ai certaines cellules fusionnées pour lesquelles ca marche bien... (mais dans mon extrait j'ai du trier : le fichier initial fait env. 1.5Mo)

Bonjour Gigi, bonjour Mita

Effectivement, si tu veux que la mise en page suive, il faut que la cellule source comprenne le même nombre de lignes et de colonnes fusionnées que la cellule destination. Cela peut également être la cause de l'erreur rencontrée au boulot.

Avec la macro qu'on a faite, tu peux fusionner le nombre de colonnes que tu veux. Il suffit d'insérrer quelques colonnes avant la langue suivante. Par contre, j'avais admis qu'il n'y avait qu'une seule ligne par cellule.

Si tu veux, je vais te concocter une version qui n'aura plus ces contraintes.

Merci Mita et les autres, pour toutes vos interventions dans tous les fils. C'est toujours un plaisir de vous lire et ainsi d'apprendre de nouveaux moyens pour résoudre les problèmes posés.

A+

Dan

Merci pour ta réponse.

Pour info, au boulot, c'est office 2000 (sous windows 2000 pro)

Pour l'histoire de cellules fusionnées, ca m'intrique un peu, car certaines cellules fusionées réagissent très bien, d'autres à moitié et d'autres pas du tout... Enfin, comme vous êtes 2 à dire la même chose, je vais suivre vos conseils, et retoucher ma mise en page

Pour ce qui est de reconcocter une nouvelle macro, je te remercie mais ca ira comme ca : je vais continuer sur ma lancée ^^ mon fichier a fait un grand pas en avant déja!!

A une autre fois, pour un nouveau futur problème, et merci à toutes les personnes qui se sont penchées sur celui là!

Gigi

Salut Dan et les autres,

Petit problème avec la macro... : le passage à la langue anglaise ne se fait pas... et en fait ca me plante carrépent le PC... :s

Voila un échantillon du fichier, avec les macros utilisées :

https://www.excel-pratique.com/~files/doc/bVmT6dan.xls

Merci pour votre aide!!

Bonjour Gigi

Ton problème provient du fait que les cellules sources en Anglais n'étaient pas fusionnées. Alors le programme boucle entre la cellule adresse et la cellule source, puisqu'on avance que d'une ligne à la fois et que ta cellule adresse en fait 4.

Dans cet exemple, il faut faire attention à avoir le même format de cellule pour toutes les langues.

Au plaisir de te relire

Dan

ok,

Comme j'avais retouché la macro, j'avais peur d'avoir fait une boulette... merci pour ta réponse!

Bonjour le fofo

Depuis mon dernier post ici, mon fichier a bien avancé, et je vous en remercie tou(te)s!!

Nouveau problème : ce fichier est composé d'environ 20 onglets, et est mis a disposition sur un site internet. Avant de poster ici (donc avec juste une version francaise), tous les onglets avaient une protection, notemment pour éviter aux utilisateurs de cliquer sur des cases dont ils n'ont pas besoin de cliquer, et donc afin d'éviter qu'ils ne modifient de façon involontaire (ou volontaire) des formules, textes...

Depuis que j'ai intégré la macro dont il est sujet dans ce topic, si je protège mes onglets, la macro plante sur les cellules destinations qui sont verrouillées. Est ce normal? Y a t'il un moyen de protéger ces cellules ET d'utiliser la macro? ou c'est soit la macro, soit la protection?

Merci encore pour vos réponses!

Salut Gigi et le forum

Pour cela il faut utiliser la proprieté UserInterfaceOnly

Private Sub Workbook_Open()
Sheets(1).Protect Password:="Secret", UserInterFaceOnly:=True
End Sub

Mytå

Mercu Mytä mais je suis loin d'etre expert VBA... même débutant!

Ma macro commence comme ca :

Private Sub Worksheet_Change(ByVal Target As Range)

' Déclenche le renouvellement de la page

Application.ScreenUpdating = False

' Test de la cellule modifiée

If Target.Address = Range("Language").Address Then

' Mémorisation du nom de la feuille actuelle

NomFeuille = ActiveSheet.Name

Dois je intégrer ton code dedans? si oui, à quel moment? si non, dois je faire une 2e macro spécifique pour ton code?

Merci encore!

Salut Gigi

La macro va dans ThisWorkBook, elle se lance au démarrage de ton application.

Il faudra bien sur adapter le nom des feuilles et le mot de passe

Mytå

pour le mot de passe, je m'en doutais... mais le nom des feuilles (onglets) aussi? c'est quoi : le (1)?

Re le forum

C'est le numéro de la feuille, tu peux utiliser Sheets("NomFeuille") à la place

Mytå

mais comme j'ai env. 20 onglets, je dois faire comment : comme ca?

Private Sub Workbook_Open()

Sheets(1).Protect Password:="Secret", UserInterFaceOnly:=True

Sheets(2).Protect Password:="Secret", UserInterFaceOnly:=True

Sheets(3).Protect Password:="Secret", UserInterFaceOnly:=True

Sheets(4).Protect Password:="Secret", UserInterFaceOnly:=True

etc...?

je t'ai dit : j'y connais rien en macro!

Re le forum

Une boucle sur les feuilles du classeur

Private Sub Workbook_Open()
Dim Feuille As Worksheet
For Each Feuille In Sheets
Feuille.Protect Password:="Secret", UserInterFaceOnly:=True
Next Feuille
End Sub

Mytå

Salut le fofo!!

Merci encore... mais je ne sais pas si finalement je vais protéger ou pas : j'ai ma macro qui plante du coup! (enfin, pas trop marrant )

en fait, pour etre plus précis, voila ce que j'ai fait :

dans le code, j'ai changé "secret" par mon mot de passe (en laissant les "") et j'ai protégé juste la 1ere feuille.

Dans la protection, j'ai juste les cases "utiliser les rapports de tri croisé" et "sélectionner les cases déverrouillées" de cochées.

Quand je lance ma macro, ca plante à ce niveau (la ligne en rouge) :

' Déplacement à l'adresse de destination

Sheets(NomFeuille).Select

' Sélection du nom de destination et recopie du texte

Sheets(NomFeuille).Select

ActiveSheet.Range(NomCellule).Select

ActiveSheet.Paste

Application.CutCopyMode = False

et au niveau du fichier, ca bloque sur la 1ere case concernée par la macro. Comme cette case est verrouillées, j'ai essayé de la déverrouiller, ca change rien... j'ai coché au moment de la protection "selectionner les cases verrouillées", ca plante quand même... alors que sans protection, ca marche nickel!! (au passage, encore merci à Dan pour cette macro!!!)

Rechercher des sujets similaires à "probleme mise forme qui suit pas"