Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Insérer une ligne de données dans un tableau

27 réponses
Avatar
METIS
Bonjour,
Problème
Je copie dans un email, la ligne suivante :

nom,email,téléphone,date

Je souhaite insérer ça dans une nouvelle ligne d'une feuille de calcul Excel
et que chaque variable entre les virgules viennent se positionner
directement dans les bonnes colonnes correspondantes...

C'est faisable sans trop de manip intermédiaires ?

Merci d'avance.

--
<|[;o)) METIS
http://www.graphM.com
http://reseau.pao.free.fr/trombinoscope/
Pour m'écrire en privé,
moi c'est metis15 et
je tourne à l'Orange...

10 réponses

1 2 3
Avatar
METIS
Sam wrote:
Excel est plus facile que le dépannage de la télé! ;-)
Cordialement
Michel dit "Sam"



==> J'ai essayé ton truc et celui de michdenis sur la même feuille, c'est
pas malin car ça s'est mis à marcher, mais je ne sais pas pourquoi...

En fait, le truc que tu m'as donné, une fois fait pour une ligne, ça marche
pour les suivantes, même pour un doc enregistré fermé puis réouvert ?

--
<|[;o)) METIS
http://www.graphM.com
http://reseau.pao.free.fr/trombinoscope/
Pour m'écrire en privé,
moi c'est metis15 et
je tourne à l'Orange...
Avatar
michdenis
Si tu obtiens satisfaction avec la proposition de Sam,
il n'est pas obligatoire de te donner des problèmes en
essayant de coder l'opération.



"METIS" a écrit dans le message de groupe de discussion :
4b5b5fb7$0$956$
Oui bé en fait, ça marche pas avec une nouvelle feuille.
Il y a un problème avec l'enregistrement de la macro ?



METIS wrote:
Excuse, en fait ça marche mais j'essayais sur la même feuille que là où
j'ai fait l'essai du truc de Sam...
A moins que ça soit son truc qui marche pour les ligne suivante...?

J'essaye avec une feuille nouvelle
A suivre !


michdenis wrote:
Ce que j'ai soumis est une petite procédure écrite pour VBA (visual Basic
application)

Tu dois ouvrir l'éditeur de code : Raccourci clavier : alt + F11
Tu ajoutes un module : Barre des menus / Insertion / module
et dans la feuille blanche, tu copies ceci :
Ce qui suit est une macro.
L'approche de SAM est probablement plus facile...
seulement si tu disais où est l'information que tu veux
copier dans ta feuille Excel. Est-elle déjà dans une
cellule d'Excel ?

À défaut de plus d'information, tu devras te débrouiller avec
celle que l'on te donne.

Tu places ton curseur entre les lignes Sub et End Sub et tu appuies
sur le bouton indiquant une petite flèche vers la droite (bouton
exécuter) '---------------------------
Sub Test()
Dim x As String
'L'information à copier
x = "nom,email,téléphone,date"
y = Split(x, ",")

with worksheets("Feuil1")
.Range("A1").Resize(, UBound(y) + 1) = y
End With
End Sub
'---------------------------

"METIS" a écrit dans le message de groupe de
discussion : 4b5b533c$0$963$
michdenis wrote:
Bonjour,

Un petit exemple : Tu choisis la cellule de ton choix
en remplaçant A1 par ....

En A1 tu auras : Nom
En B1 tu auras : Email
etc.

'------------------------------
Dim x As String
x = "nom,email,téléphone,date"
y = Split(x, ",")
Range("A1").Resize(, UBound(y) + 1) = y
'------------------------------



==> Merci, mais ouille, pas tout compris :
(je suis en Excel 2007, ça joue peut-être ?)

Je mets ça dans A1 :

Dim x As String
x = "nom,email,téléphone,date"
y = Split(x, ",")
Range("A1").Resize(, UBound(y) + 1) = y
?

Ca me met la première ligne dans A1,
la deuxième ligne dans A2
la troisième ligne dans A3
la quatrième ligne dans A4

Et c'est tout...





--
<|[;o)) METIS
http://www.graphM.com
http://reseau.pao.free.fr/trombinoscope/
Pour m'écrire en privé,
moi c'est metis15 et
je tourne à l'Orange...
Avatar
michdenis
Si tu as le même type de données pour l'ensemble de la colonne,
tu débutes par la sélection de tes données de ta colonne et tu
applique la procédure de Sam.



"METIS" a écrit dans le message de groupe de discussion :
4b5b60aa$0$895$
Sam wrote:
Excel est plus facile que le dépannage de la télé! ;-)
Cordialement
Michel dit "Sam"



==> J'ai essayé ton truc et celui de michdenis sur la même feuille, c'est
pas malin car ça s'est mis à marcher, mais je ne sais pas pourquoi...

En fait, le truc que tu m'as donné, une fois fait pour une ligne, ça marche
pour les suivantes, même pour un doc enregistré fermé puis réouvert ?

--
<|[;o)) METIS
http://www.graphM.com
http://reseau.pao.free.fr/trombinoscope/
Pour m'écrire en privé,
moi c'est metis15 et
je tourne à l'Orange...
Avatar
METIS
michdenis wrote:
Si tu obtiens satisfaction avec la proposition de Sam,
il n'est pas obligatoire de te donner des problèmes en
essayant de coder l'opération.



==> Oui, mais ta macro permettrait de copier le fichier pour générer un
autre listing, mais je ne vois pas comment on enregistre la macro ni comment
elle reste attachée à ce document.

--
<|[;o)) METIS
http://www.graphM.com
http://reseau.pao.free.fr/trombinoscope/
Pour m'écrire en privé,
moi c'est metis15 et
je tourne à l'Orange...
Avatar
METIS
michdenis wrote:
Si tu as le même type de données pour l'ensemble de la colonne,
tu débutes par la sélection de tes données de ta colonne et tu
applique la procédure de Sam.



==> Oui, mais il faut le refaire à chaque nouvelle série de saisies.

Ton truc de macro *a marché tout à l'heure*, mais là, ça marche plus et je
ne vois pas pourquoi.
L'avantage de la macro, c'est que ça marcherait toujours même si on
ferme/ouvre le document...

Je dois filer ça à un pote qui ne connait rien au code,
bien pire que moi (c'est pas peu dire).

Comment faire ?

--
<|[;o)) METIS
http://www.graphM.com
http://reseau.pao.free.fr/trombinoscope/
Pour m'écrire en privé,
moi c'est metis15 et
je tourne à l'Orange...
Avatar
michdenis
Si tu veux procéder par macro,

Donne-moi le nom de la feuille où sont tes données
et l'adresse de la colonne où se retrouvent les informations
séparées par une virgule.
Tu dois aussi fournir l'endroit où tu veux retrouver ces données
après traitement. (Dans quelle colonne, quelle feuille, quel classeur ?)



"METIS" a écrit dans le message de groupe de discussion :
4b5b686d$0$17500$
michdenis wrote:
Si tu as le même type de données pour l'ensemble de la colonne,
tu débutes par la sélection de tes données de ta colonne et tu
applique la procédure de Sam.



==> Oui, mais il faut le refaire à chaque nouvelle série de saisies.

Ton truc de macro *a marché tout à l'heure*, mais là, ça marche plus et je
ne vois pas pourquoi.
L'avantage de la macro, c'est que ça marcherait toujours même si on
ferme/ouvre le document...

Je dois filer ça à un pote qui ne connait rien au code,
bien pire que moi (c'est pas peu dire).

Comment faire ?

--
<|[;o)) METIS
http://www.graphM.com
http://reseau.pao.free.fr/trombinoscope/
Pour m'écrire en privé,
moi c'est metis15 et
je tourne à l'Orange...
Avatar
METIS
C'est là :
A1, feuil1, listing01.xlsm


michdenis wrote:
Si tu veux procéder par macro,

Donne-moi le nom de la feuille où sont tes données
et l'adresse de la colonne où se retrouvent les informations
séparées par une virgule.
Tu dois aussi fournir l'endroit où tu veux retrouver ces données
après traitement. (Dans quelle colonne, quelle feuille, quel classeur ?)



"METIS" a écrit dans le message de groupe de
discussion : 4b5b686d$0$17500$
michdenis wrote:
Si tu as le même type de données pour l'ensemble de la colonne,
tu débutes par la sélection de tes données de ta colonne et tu
applique la procédure de Sam.



==> Oui, mais il faut le refaire à chaque nouvelle série de saisies.

Ton truc de macro *a marché tout à l'heure*, mais là, ça marche plus et je
ne vois pas pourquoi.
L'avantage de la macro, c'est que ça marcherait toujours même si on
ferme/ouvre le document...

Je dois filer ça à un pote qui ne connait rien au code,
bien pire que moi (c'est pas peu dire).

Comment faire ?



--
<|[;o)) METIS
http://www.graphM.com
http://reseau.pao.free.fr/trombinoscope/
Pour m'écrire en privé,
moi c'est metis15 et
je tourne à l'Orange...
Avatar
METIS
METIS wrote:
C'est là :
A1, feuil1, listing01.xlsm



==> La ligne :
nom,email,téléphone,nombre,date
Je souhaite par exemple coller la première ligne à saisir dans A1 et que ça
se répartisse dans ABCDE

==>Maintenant, à force de bidouiller, ça me dit que les macros sont
désactivées pour ce projet...

--
<|[;o)) METIS
http://www.graphM.com
http://reseau.pao.free.fr/trombinoscope/
Pour m'écrire en privé,
moi c'est metis15 et
je tourne à l'Orange...
Avatar
michdenis
Copie la procédure suivante dans le module de la feuille où
l'action se déroule.
Pour ce faire, tu fais un clic droit sur l'onglet de
ladite feuille, et tu sélectionnes la commande du
menu contextuel "visualiser le code".
Dans la feuille blanche, tu effectues la copie.

Dès que tu valideras le contenu de la cellule après
avoir saisi les éléments du texte, les données
de la cellule seront automatiquement transférées
dans les 4 cellules.

Cette automatisation est valide pour toutes les données
que tu saisiras seulement en colonne A:A

'-------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)

Dim Rg As Range, C As Range

Set Rg = Intersect(Target, Range("A:A"))
If Not Rg Is Nothing Then
For Each C In Rg
If InStr(1, C.Value, ",", vbTextCompare) > 0 Then
y = Split(C.Value, ",")
Application.EnableEvents = False
C.Resize(, UBound(y) + 1) = y
Application.EnableEvents = True
End If
Next
End If
End Sub
'-------------------------------------





"METIS" a écrit dans le message de groupe de discussion :
4b5b6e78$0$17492$
METIS wrote:
C'est là :
A1, feuil1, listing01.xlsm



==> La ligne :
nom,email,téléphone,nombre,date
Je souhaite par exemple coller la première ligne à saisir dans A1 et que ça
se répartisse dans ABCDE

==>Maintenant, à force de bidouiller, ça me dit que les macros sont
désactivées pour ce projet...

--
<|[;o)) METIS
http://www.graphM.com
http://reseau.pao.free.fr/trombinoscope/
Pour m'écrire en privé,
moi c'est metis15 et
je tourne à l'Orange...
Avatar
METIS
Alors, ça c'est cool, ça marche.
Mais quand j'enregistre le classeur, je ferme Excel,
je réouvre le document, la macro est là mais ça marche plus...

Dur Excel 2007 !


michdenis wrote:
Copie la procédure suivante dans le module de la feuille où
l'action se déroule.
Pour ce faire, tu fais un clic droit sur l'onglet de
ladite feuille, et tu sélectionnes la commande du
menu contextuel "visualiser le code".
Dans la feuille blanche, tu effectues la copie.

Dès que tu valideras le contenu de la cellule après
avoir saisi les éléments du texte, les données
de la cellule seront automatiquement transférées
dans les 4 cellules.

Cette automatisation est valide pour toutes les données
que tu saisiras seulement en colonne A:A

'-------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)

Dim Rg As Range, C As Range

Set Rg = Intersect(Target, Range("A:A"))
If Not Rg Is Nothing Then
For Each C In Rg
If InStr(1, C.Value, ",", vbTextCompare) > 0 Then
y = Split(C.Value, ",")
Application.EnableEvents = False
C.Resize(, UBound(y) + 1) = y
Application.EnableEvents = True
End If
Next
End If
End Sub
'-------------------------------------





"METIS" a écrit dans le message de groupe de
discussion : 4b5b6e78$0$17492$
METIS wrote:
C'est là :
A1, feuil1, listing01.xlsm



==> La ligne :
nom,email,téléphone,nombre,date
Je souhaite par exemple coller la première ligne à saisir dans A1 et que
ça
se répartisse dans ABCDE

==>Maintenant, à force de bidouiller, ça me dit que les macros sont
désactivées pour ce projet...



--
<|[;o)) METIS
http://www.graphM.com
http://reseau.pao.free.fr/trombinoscope/
Pour m'écrire en privé,
moi c'est metis15 et
je tourne à l'Orange...
1 2 3