XL 2016 Concatener automatique 2 colonnes dans une troisième

mcdooh

XLDnaute Nouveau
Bonjour

Voilà mon problème : je récupère automatiquement un fichier avec dans une colonne B un numéro et dans la colonne C une date. (sachant que le nombre de ligne B et C sont égales mais peux varier jusqu'à 20000 ligne)

le nombre de ligne est variable

je souhaite dans la colonne A concatener avec une macro le Numéro de A avec la date en B avec un espace entre les 2 pour toutes lignes de mon tableau : par exemple en B 1982 en C 25/09/2017 en A je veux avoir 1982 25/09/2017.

merci d'avance de votre aide.
 

chris

XLDnaute Barbatruc
Bonjour

Pourquoi une macro ?
Code:
=B2&" "&TEXTE(C2;"jj/mm/aaaa")

Si en plus la source est sous forme de tableau, la formule se recopie toute seule...

Change ton profil si tu as 2016 et plus 2003...
 
Dernière édition:

CISCO

XLDnaute Barbatruc
Bonjour

Pourquoi faire avec une macro ? Si tu n'as pas de cellule vide dans la colonne B, cela ne devrait pas poser de problème. Cela sera certainement moins rapide, mais bon...

= B2&" "&C2 dans A2, puis double-clic sur la poignée en bas à droite de la cellule A2.

Si tu veux ensuite effacer la colonne B et/ou la colonne C, tu copies toute la colonne A, et tu fais un collage spécial valeurs sur place.

@plus
 
Dernière édition:

mcdooh

XLDnaute Nouveau
Déjà je vous remercie de vos réponses

Je vous met un petit aperçu de mon fichier de départ en PJ

je récupère 2 fichiers .txt avec plus ou moins de valeurs dedant mais cela peut aller de 1 lot 44 lignes à plus de 15000 lignes depuis un automate je copie mes valeurs dans un fichier excel de cette façon

en B cela correspond à des lots de cuisson de pièces
en C la date et l'heure
en D date et heure mais après changement de format je ne récupèrerai que l'heure
en E ce sont les températures

j'aimerai le faire avec une macro car vais faire plusieurs choses et parce que ce n'est pas forcément moi qui vais traiter les données

je voyais mon fichier comme suit :

j'avais déjà mis =CONCATENER(B1;" ";TEXTE(C1;"jj/mm/aa")) en A1

Mais je voudrais grâce à une macro étirer la cellule A1 jusqu'à la dernière ligne de ma colonne B ou la copiée

je sais retrouvé le numéro qui correspond avec ce genre de commande

Dim DernLigne As Long
DernLigne = Range("B" & Rows.Count).End(xlUp).Row

une fois que ma colonne A sera complète je supprimerai les colonne B et C, il faudra que je change le format de ma cellule D qui sera passée en B en Heure avec ces lignes

Columns("B:B").Select
Selection.NumberFormat = "[$-x-systime]h:mm:ss AM/PM"

ensuite je veux fusionner les cellules identiques de la colonne A avec ces lignes

' FUSION COLONNE A

'************************************************************************

Dim cel As Range
Dim i As Integer
Dim c As Integer

Columns("A:A").Select

With Selection
If .Rows.Count > 1 And .Columns.Count > 1 Then
MsgBox ("Vous ne pouvez pas sélectionner SIMULTANEMENT :" & Chr(13) _
& Chr(13) & " Plusieurs Lignes" _
& Chr(13) & " ET" _
& Chr(13) & " Plusieurs Colonnes")
Exit Sub
Else


For Each cel In .Cells
If LCase(cel.Text) <> "" Then
i = 0
Application.DisplayAlerts = False
If .Columns.Count = 1 Then
Do While cel.Offset(i, 0).Text = cel.Offset(i + 1, 0).Text
i = i + 1
Loop
With Range(cel, cel.Offset(i, 0))
.VerticalAlignment = xlTop
.MergeCells = True
End With
Else
Do While cel.Offset(0, i).Text = cel.Offset(0, i + 1).Text
i = i + 1
Loop
Application.DisplayAlerts = False
With Range(cel, cel.Offset(0, i))
.MergeCells = True
End With
End If
Application.DisplayAlerts = True
End If
Next cel
End If
End With

et je fais la même chose sur la colonne B pour ensuite pouvoir sortir des graphiques par lot-date / heure / temperature

voilà j'espère avoir été clair dans mon raisonnement !!!!! une chose est sure c'est que moi je me comprend c'est dèjà ça je pense !!!!!!!!!!!!!

merci de votre aide
 

Pièces jointes

  • Classeur1.xlsx
    16.3 KB · Affichages: 39

chris

XLDnaute Barbatruc
Re

Puisque tu as 2016, je m'orienterais plutôt vers un code qui ajoute une ligne de titre, mette sous forme de tableau, ajoute la formule.

Ensuite ce tableau peut être exploité par GCD où même par un graphique classique paramétré par des segments associés au tableau pour filtrer une date ou plusieurs...
 

mcdooh

XLDnaute Nouveau
Merci à tous pour votre aide, mais j'ai finalement trouvé ce que je voulais avec ces quelques lignes :

Dim DernLigne As Long
DernLigne = Range("B" & Rows.Count).End(xlUp).Row

Range("a1").Select
Selection.Copy
Range("a" & "2", "a" & DernLigne).Select
ActiveSheet.Paste

J'arrive donc à copier ma formule qui est en A1 dans toutes les cellules jusqu'à la dernière ligne de la colonne B
 

mcdooh

XLDnaute Nouveau
Je sais trop de mauvaises habitudes, mais je ne demande qu'à apprendre.

Si il y a plus simple je suis preneur, j'ai mis en PJ un fichier sur la feuil1 un graphique illisible à cause des lots dates non fusionnées et feuil2 ce que je voudrais avoir au final en automatique.
 

Pièces jointes

  • ESSAI.xlsm
    201.1 KB · Affichages: 28
Dernière édition:

mcdooh

XLDnaute Nouveau
au départ j'ai une colonne avec 1985 (par exemple) c'est un numéro de lot une colonne avec la date un colonne avec l'heure et une colonne avec les températures au finale je veux un graphique des températures par lot date et heures, mais comme c'est illisible voir feuille 1 du fichier joint précédemment, je voudrai plus un graphique comme sur la feuille 2
 

Discussions similaires

Statistiques des forums

Discussions
315 095
Messages
2 116 166
Membres
112 675
dernier inscrit
Tazra_IMOU