Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

VBA excel : Regrouper données texte de plusieurs cellules dans un seule cellule

  • Initiateur de la discussion Initiateur de la discussion debidebo67
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

debidebo67

XLDnaute Nouveau
Bonjour,

j'ai réussi à faire ma macro pour une ligne, pour voir si elle fonctionne.😀
Ensuite j'ai essayé de mettre en place une variable pour qu'elle s'applique à toutes les lignes !
et là ça marche pas 😕 :
(Colonne H = 7 ; G =7 ; H = 8; I = 9)

Sub essaimacro()

Dim i As Integer
i = 5
Worksheets("tableau 1").Range("P5😛1000").ClearContents
Application.ScreenUpdating = False

If Cells(7, i) = "" Then
Cells(i, 16).Value = Cells(6, i) & " - " & Cells(8, i) & " - " & Cells(9, i)
ElseIf Range(8, i) & Cells(9, i) = "" Then
Cells(i, 16).Value = Cells(6, i) & " - " & Cells(7, i)
ElseIf Cells(8, i) = "" Then
Cells(i, 16).Value = Cells(6, i) & " - " & Cells(7, i) & " - " & Cells(9, i)
ElseIf Cells(7, i) & Cells(8, i) = "" Then
Cells(i, 16).Value = Cells(6, i) & " - " & Cells(9, i)
Else
Cells(i, 16).Value = Cells(6, i) & " - " & Cells(7, i) & " - " & Cells(8, i) & " - " & Cells(9, i)
i = i + 1
End If

Application.ScreenUpdating = True
End Sub

pourriez-vous m'aider sur l'erreur SVP ?

Merci d'avance
 

Pièces jointes

Re : VBA excel : Regrouper données texte de plusieurs cellules dans un seule cellule

Bonjour debidebo,
Il faudrait que tu utilise une boucle :

Code:
Sub essaimacro()

Dim i As Integer
i = 5
Worksheets("tableau 1").Range("P5:P1000").ClearContents
Application.ScreenUpdating = False

for i = 5 to 1000
If Cells(7, i) = "" Then
Cells(i, 16).Value = Cells(6, i) & " - " & Cells(8, i) & " - " & Cells(9, i) 
ElseIf Range(8, i) & Cells(9, i) = "" Then
Cells(i, 16).Value = Cells(6, i) & " - " & Cells(7, i) 
ElseIf Cells(8, i) = "" Then
Cells(i, 16).Value = Cells(6, i) & " - " & Cells(7, i) & " - " & Cells(9, i) 
ElseIf Cells(7, i) & Cells(8, i) = "" Then
Cells(i, 16).Value = Cells(6, i) & " - " & Cells(9, i) 
Else
Cells(i, 16).Value = Cells(6, i) & " - " & Cells(7, i) & " - " & Cells(8, i) & " - " & Cells(9, i)
End If
Next i

Application.ScreenUpdating = True
End Sub
 
Re : VBA excel : Regrouper données texte de plusieurs cellules dans un seule cellule

Oui il faut rajouter le for i = 5 to 1000 avant ton premier if,
et next i à la fin de tes if.
Cela créera une boucle qui tournera jusqu'à ce que i est atteint 1000.
 
Re : VBA excel : Regrouper données texte de plusieurs cellules dans un seule cellule

ci joint le fichier avec la macro
 

Pièces jointes

Re : VBA excel : Regrouper données texte de plusieurs cellules dans un seule cellule

Je pense avoir trouvé l'erreur.

Sur ton premier ElseIf, tu utilise Range au lieu de Cells.
En modifiant ceci ça fonctionne chez moi.
 
Re : VBA excel : Regrouper données texte de plusieurs cellules dans un seule cellule

ok merci beaucoup, 😀

pour information j'avais inversé les lignes et les colonnes la bonne macro est la suivante (pour ceux qui voudront s'inspirer de la discutions pour leurs projets) :

Sub essaimacroboucle()

Dim i As Integer
i = 5
Worksheets("tableau 1").Range("P5😛1000").ClearContents
Application.ScreenUpdating = False

For i = 5 To 1000

If Cells(7, i) = "" Then
Cells(i, 16).Value = Cells(i, 6) & " - " & Cells(i, 8) & " - " & Cells(i, 9)

ElseIf Cells(i, 8) & Cells(i, 9) = "" Then
Cells(i, 16).Value = Cells(i, 6) & " - " & Cells(i, 7)

ElseIf Cells(i, 8) = "" Then
Cells(i, 16).Value = Cells(i, 6) & " - " & Cells(i, 7) & " - " & Cells(i, 9)

ElseIf Cells(i, 7) & Cells(i, 8) = "" Then
Cells(i, 16).Value = Cells(i, 6) & " - " & Cells(i, 9)

Else
Cells(i, 16).Value = Cells(i, 6) & " - " & Cells(i, 7) & " - " & Cells(i, 8) & " - " & Cells(i, 9)
i = i + 1
End If
Next i
End Sub
 
Re : VBA excel : Regrouper données texte de plusieurs cellules dans un seule cellule

Content que ça marche 😛
Par contre les lignes i = 5 et i = i +1 sont devenues inutiles.
L'initialisation de la variable est faite avec for i = 5, et l'incrémentation avec Next i.
 
Re : VBA excel : Regrouper données texte de plusieurs cellules dans un seule cellule

En plus d'être inutile j'ai constaté qu'elles sont source d'erreurs !

si on utilise For i = x et next i il ne faut pas ajouter i = i +1 et i = x
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
177
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
479
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
169
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…