XL 2010 Ajout du sigle pourcentage lors d'une exportation

thespeedy20

XLDnaute Occasionnel
Bonjour à tous,

J'ai une base de donnée pour réaliser des diplômes, quand j'exporte les points , j'aimerais qu'il indique ceux-ci en %...

Y a t il un moyen lorsque j'exporte vers mes diplômes :

- 3 possibilités :

1ère : affiché le sigle pourcent
2ème : que le texte reste du texte
3ème : quand l'élève n'as pas de résultat, d'indiquer pas d'évaluation pour cet élèves

Merci d'avance pour vos solutions ou idées

Oli
 

Staple1600

XLDnaute Barbatruc
Re,

@thespeedy20
En utilisant la méthode Publipostage (explicitée par la vidéo que je t'ai présenté précédemment), en remaniant ta base Excel, en créant un document Word, puis en insérant les champs de fusion idoines, en théorie, ça devrait te prendre moins d'une heure.

Pour le reste, devoir générer 1000 certificats la veille pour le lendemain, ce n'est pas un problème Excel mais un problème organisationnel. ;)

PS1: Je n'ai rien gagné ou perdu.
Je t'ai fait une suggestion*.
Et si je l'ai faite, c'est que c'est la méthode que j'utilise quand je dois générer N documents.
(que ce soit des lettres, des catalogues, des certificats ou même un mailing)

Tu es libre de la suivre ou pas ;)

*(Word+Excel)

PS2:
re,
@Staple1600
Je ne vois où insérer le step...
Peux-tu me dire dois-je mettre afin que cela fonctionne
Merci...
Oli
La macro de mon précédent post étant censée te montrer comment j'utilise le Step...
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re

Voila le prémisse de ce vers quoi théoriquement ma macro "indice" devait t'amener ;)
VB:
Sub GenererCertifs_B()
Dim i&, t, ws As Worksheet
Set ws = Feuil3 'ici mettre le codename de la bonne feuille
Application.ScreenUpdating = False
ws.Columns(1).Clear: ws.Columns(1).ColumnWidth = 117.86
With Sheets("Base") ' mettre le nom de la bonne feuille
  j = ws.Cells(Rows.Count, 1).End(xlUp).Row
    For i = 2 To .Cells(Rows.Count, 1).End(3).Row Step 2
    t = .Cells(i, 1).Resize(2, 4)
      '1er certif
      [CERTIFB].Item(10) = t(1, 1)
      [CERTIFB].Item(14) = t(1, 2)
      
      '2ième certif
      [CERTIFB].Item(33) = t(2, 1)
      [CERTIFB].Item(37) = t(2, 2)
      [CERTIFB].Copy ws.Cells(j, 1)
      Application.CutCopyMode = False
      j = ws.Cells(Rows.Count, 1).End(xlUp).Row + 1
    Erase t
    Next
End With
End Sub
Je te laisse compléter le reste (à moins que tu ais déjà le nez dans Word ;) )
 

thespeedy20

XLDnaute Occasionnel
Bonjour le Forum, Staple1600

@Ce lien n'existe plus

J'ai finalement fait mes certificats avec la méthode Word-Excel, c'est nettement plus facile, tu avais entièrement raison, merci pour toute l'aide apportée dans mon projet....

Ici j'ai adapté la dernière macro mais j'ai soucis avec if Len...cela ne fonctionne pas...
Peux-tu me dire pourquoi ?

Merci


VB:
Sub GenererCertifs_B()
Dim i&, t, ws As Worksheet
Set ws = Feuil6 'ici mettre le codename de la bonne feuille
Application.ScreenUpdating = False
ws.Columns(1).Clear: ws.Columns(1).ColumnWidth = 117.86
With Sheets("Résulat_formation") ' mettre le nom de la bonne feuille
  j = ws.Cells(Rows.Count, 1).End(xlUp).Row
    For i = 4 To .Cells(Rows.Count, 1).End(3).Row Step 2
    t = .Cells(i, 1).Resize(2, 10)
      '1er certif
      [CERTIFB].Item(10) = t(1, 10)
      [CERTIFB].Item(14) = t(1, 3)
      [CERTIFB].Item(16) = "a satisfait à la filière de Formation du cours de: " & t(1, 1)
      If Len(t(1, 9)) > 1 Then
      [CERTIFB].Item(18) = "Avec: " & t(1, 9).Text
      End If
      '2ième certif
      [CERTIFB].Item(33) = t(2, 10)
      [CERTIFB].Item(37) = t(2, 3)
      [CERTIFB].Item(39) = "a satisfait à la filière de Formation du cours de: " & t(2, 1)
      If Len(t(2, 9)) > 1 Then
      [CERTIFB].Item(41) = "Avec: " & .Cells(2, 9).Text
      [CERTIFB].Copy ws.Cells(j, 1)
      End If
      Application.CutCopyMode = False
      j = ws.Cells(Rows.Count, 1).End(xlUp).Row + 1
    Erase t
    Next
End With
End Sub

Oli
 

Staple1600

XLDnaute Barbatruc
Re

@thespeedy20
J'ai creusé un peu plus ;)
(NB: J'ai inhibé au préalable la procédure événementielle dans le feuille Résulat_formation)
VB:
Sub GenererCertifs_C()
Dim i&, t, ws As Worksheet
Set ws = Feuil6 'ici mettre le codename de la bonne feuille
Application.ScreenUpdating = False
ws.Columns(1).Clear: ws.Columns(1).ColumnWidth = 117.86
With Sheets("Résulat_formation") ' mettre le nom de la bonne feuille
  j = ws.Cells(Rows.Count, 1).End(xlUp).Row
    For i = 2 To .Cells(Rows.Count, 1).End(3).Row Step 2
    t = .Cells(i, 1).Resize(2, 10)
      '1er certif
      [CERTIFB].Item(10) = t(1, 10)
      [CERTIFB].Item(14) = t(1, 3)
      [CERTIFB].Item(16) = "a satisfait à la filière de Formation du cours de: " & t(1, 1)
      If Len(t(1, 9)) > 1 Then
      [CERTIFB].Item(18) = VBA.format(t(1, 9), """Avec: ""0.00%")
      End If
      '2ième certif
      [CERTIFB].Item(33) = t(2, 10)
      [CERTIFB].Item(37) = t(2, 3)
      [CERTIFB].Item(39) = "a satisfait à la filière de Formation du cours de: " & t(2, 1)
      If Len(t(2, 9)) > 1 Then
      [CERTIFB].Item(41) = VBA.format(t(2, 9), """Avec: ""0.00%")
      [CERTIFB].Copy ws.Cells(j, 1)
      End If
      Application.CutCopyMode = False
      j = ws.Cells(Rows.Count, 1).End(xlUp).Row + 1
    Erase t
    Next
End With
End Sub
 

thespeedy20

XLDnaute Occasionnel
Bonjour le Forum, Staple1600

@Staple1600

J'ai réalisé un nouveau fichier propre avec la dernière macro, mais toujours des soucis au niveau des points... (ex: 78%, i il indique 77,5%) et certain points ne correspondent pas au nom de l'élève....

Sur l'onglet résultat, rien, si je fais imprimez il y a les certificats !!!
Sur l'onglet certi, il affiche les deux derniers certificats...!!!
 

Pièces jointes

  • test_certi.xlsm
    41.7 KB · Affichages: 17

Statistiques des forums

Discussions
312 201
Messages
2 086 166
Membres
103 151
dernier inscrit
nassim