VBA , concaténer et copier des cellules d'une page à une autre

Bonjour,
Modifie ta macro comme ceci

Sub imprime_etiquette()
  Dim aliment As Range, Temp$
  ActiveSheet.Select
  Range("C7:C30").Name = "aliments"
  Sheets("ETIQUETTE").Select
  Range("A1").ClearContents
    For Each aliment In Range("aliments")
      If Len(aliment) > 2 Then
        If Temp= "" Then
          Temp = aliment
        Else
          Temp = Temp & ", " & aliment
        End If
      End If
    Next
  Range("A1") = "Ingrédients: " & Temp & vbLf & vbLf & "Peut contenir des allergènes"
End Sub

Merci Mimimaty , il me renvoie une erreur ??

Re,
Il est plus facile de faire un copier/coller que de faire des oublis de guillemet
image

Re,
Testez ces lignes :

Sub imprime_etiquette()

Dim aliment As Range
Dim a As Integer, b As Integer
ActiveSheet.Select
Range("C7:C30").Name = "aliments"
Sheets("ETIQUETTE").Select
Range("A1").Clear
Range("A1") = "Ingrédients : "
For Each aliment In Range("aliments")
If Len(aliment) > 2 Then
If Range("A1") = "" Then
Range("A1") = aliment
Else
Range("A1") = Range("A1") & ", " & aliment
End If
End If
Next

With Range("A1")
.Value = Range("A1") & Chr(10) & Chr(10) & "Peut contenir des allergènes"
.Characters(15, 2).Delete
End With

a = Range("A1").Characters.Count
b = a - 28

With Range("A1").Characters(b, 29).Font
.Bold = True
.Color = vbRed
End With

With Range("A1").Characters(1, 13).Font
.Bold = True
.Color = vbRed
End With

On Error Resume Next
Range("aliments").Name = ""
Sheets("Page Type").Select
End Sub

Cordialement
Will - Fread

Voir plus court

Sub imprime_etiquette()
  Dim aliment As Range, Temp$
  ActiveSheet.Range("C7:C30").Name = "aliments"
  Sheets("ETIQUETTE").Activate
  Range("A1").ClearContents
    For Each aliment In Range("aliments")
      If Len(aliment) > 2 Then
          Temp = Temp & ", " & aliment
      End If
    Next
  Range("A1") = "Ingrédients: " & Mid(Temp, 2, Len(Temp)) & vbLf & vbLf & "Peut contenir des allergènes"
End Sub

Merci Mimimathy, ce code plus court fera très bien l’affaire ( et merci aussi à toi Will - Fread)

1 « J'aime »

Petite question (en bonus :wink: ), sur ma feuille Page Type je fais en sorte que lorsqu’on introduit une adresse web, le code du module vba me génère un QR code dans ma feuille ETIQUETTE, en bas à droite de l’etiquette, voici le code que j’ai placé dans le module:

Option Explicit

Function URL_QRCode_SERIES( _
ByVal QR_Value As String, _
Optional ByVal PictureSize As Long = 100, _
Optional ByVal DisplayText As String = «  », _
Optional ByVal Updateable As Boolean = True) As Variant

Dim PictureName As String
Dim oPic As Shape, oRng As Excel.Range
Dim vLeft As Variant, vTop As Variant
Dim sURL As String

Const sRootURL As String = « https://chart.googleapis.com/chart? »
Const sSizeParameter As String = « chs= »
Const sTypeChart As String = « cht=qr »
Const sDataParameter As String = « chl= »
Const sJoinCHR As String = « & »

If Updateable = False Then
URL_QRCode_SERIES = « outdated »
Exit Function
End If

PictureName = « QRCode » & Application.Caller.Address
Set oRng = Application.Caller.Offset(, 1)
On Error Resume Next
Set oPic = oRng.Parent.Shapes(PictureName)
If Err Then
Err.Clear
vLeft = oRng.Left + 4
vTop = oRng.Top
Else
vLeft = oPic.Left
vTop = oPic.Top
PictureSize = Int(oPic.Width)
oPic.Delete
End If
On Error GoTo 0

If Len(QR_Value) = 0 Then
URL_QRCode_SERIES = CVErr(xlErrValue)
Exit Function
End If

sURL = sRootURL & _
sSizeParameter & PictureSize & « x » & PictureSize & sJoinCHR & _
sTypeChart & sJoinCHR & _
sDataParameter & UTF8_URL_Encode(VBA.Replace(QR_Value, " ", « + »))

Set oPic = oRng.Parent.Shapes.AddPicture(sURL, True, True, vLeft, vTop, PictureSize, PictureSize)
oPic.Name = PictureName
URL_QRCode_SERIES = DisplayText
End Function

Function UTF8_URL_Encode(ByVal sStr As String)

Dim i As Long
Dim a As Long
Dim res As String
Dim code As String

res = ""
For i = 1 To Len(sStr)
    a = AscW(Mid(sStr, i, 1))
    If a < 128 Then
        code = Mid(sStr, i, 1)
    ElseIf ((a > 127) And (a < 2048)) Then
        code = URLEncodeByte(((a \ 64) Or 192))
        code = code & URLEncodeByte(((a And 63) Or 128))
    Else
        code = URLEncodeByte(((a \ 144) Or 234))
        code = code & URLEncodeByte((((a \ 64) And 63) Or 128))
        code = code & URLEncodeByte(((a And 63) Or 128))
    End If
    res = res & code
Next i
UTF8_URL_Encode = res

End Function

Private Function URLEncodeByte(val As Integer) As String

Dim res As String
res = "%" & Right("0" & Hex(val), 2)
URLEncodeByte = res

End Function

Le problème est que si je met le lien de youtube, ou apple ou autre , ça fonctionne mais des que je met une adresse style une adresse se terminant par .pdf, le qr code est blanc, il ne s’affiche pas ??

Comprenez vous pourquoi ?

Il y a pas de quoi !
Le code est devenu plus long à cause des couleurs :

Bonne continuation!

encore merci à toi :wink:

1 « J'aime »

Et bien, … Je laisse ça aux autres, j’en ai jamais fait.

ok merci à toi de tout ton aide

bonjour mimimathy, je désirerais ajouter également le résultat des cellules G4, K4, I4, Ka de mon activesheet, et à la suite de

Range(« A1 ») = "Ingrédients: " & Temp & vbLf & vbLf & « Peut contenir des allergènes »

Sur la même lignes ce sont des chiffres

merci à toi

Bonjour,
A tester
Calcul nutriments OK2-1 - Copie (1).xlsm (1,8 Mo)

super ça fonctionne nickel :wink:
Dis Mimimathy, peux-tu me dire comment je devrais faire:
le code reprend les aliments => ok

ub imprime_etiquette()
Dim aliment As Range, Temp$
ActiveSheet.Range(« C7:C30 »).Name = « aliments »
Sheets(« ETIQUETTE »).Activate
Range(« A1 »).ClearContents
For Each aliment In Range(« aliments »)
If Len(aliment) > 2 Then
Temp = Temp & ", " & aliment
End If
Next
Range(« A1 ») = "Ingrédients: " & Mid(Temp, 2, Len(Temp)) & vbLf & vbLf & "Allergènes " …
Après (allergènes), on me demande de faire la même opération que pour les ingrédients, à savoir , reprendre les articles se trouvant en colonne Ak, ligne 7 à 30

Je ne sais pas si je suis assez clair ?

Vu que la colonne AK est vide,
Je ne vois pas où est le problème

Oui mais depuis , des infos ont ete remtrees dans la colonne AK …

Re,
Et ben si toi tu vois, moi je ne vois rien
Pas de fichier, pas de réponse :smiley:

1 « J'aime »

Calcul nutriments OK2-1 - Copie.xlsm (3,1 Mo)
Voici Mimimathy

Re,

Ah Oui, elles sont visibles

Ce sujet a été automatiquement fermé après 30 jours. Aucune réponse n’est permise dorénavant.