XL 2021 Ecrire dans une autre feuille cas trop compliqué pour moi

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour à toutes et à tous :)

Début octobre, j'avais créé un fil pour "Ecrire dans une une autre feuille.

Mon Cher Gérard (job75) a eu la gentillesse de me fournir la solution, encore merci à toi :)
J'avais pensé que je pourrais l'appliquer en l'adaptant à mon besoin.

Que nenni lol, malgré toutes mes tentatives, je n'y arrive pas (mes neurones ne suivent pas :))
Il est vrai que mon besoin est ardu (enfin pour moi)

Je me permets de vous le soumettre en espèrant que vous pourrez m'aider...
A partir de la feuille Appels "CELLULE "ACTIVE"
Mon besoin
: Je voudrais envoyer certaines des informations contenues dans cette cellule dans ma feuille "RdV_transfert TEST" NON ACTIVE

Dans le classeur joint, j'ai détaillé mon besoin dans la feuille "Besoin"
J'ai tenté de coller ici mais je n'arrive pas à présenter de façon claire et compréhensive, c'est pourquoi, si vous le voulez bien, je vous remercie de télécharger le classeur.

Espérant votre attention pour ma demande, je vous en remercie par avance.
Entre temps, je continue mes élucubrations comme dirait Antoine lol :)
 

Pièces jointes

  • 01 Appels vers transfert.xlsm
    28.3 KB · Affichages: 2
Dernière édition:

job75

XLDnaute Barbatruc
Bonjour Lionel, le forum,
il me faut écrire dans la feuille "RdV_transfert TEST tout en restant sur ma feuille "Appels" et sur ma cellule active
Alors il suffit d'exécuter cette macro :
Code:
Sub Transfert()
'se lance par les touches Ctrl + T
Dim Fdest As Worksheet, c As Range, tablo, s
Set Fdest = Sheets("RdV_transfert TEST")
Sheets("Appels").Activate
If Fdest.FilterMode Then Fdest.ShowAllData 'si la feuille est filtrée
Set c = Fdest.Cells(Rows.Count, 1).End(xlUp)(2) '1ère cellule vide
If c.Row < 3 Then Set c = Fdest.[A3]
If ActiveCell.Row < 3 Or ActiveCell.Column <> 15 Or IsEmpty(ActiveCell) Then Exit Sub
c = ActiveCell 'copie la valeur
On Error Resume Next 'si des recherches n'aboutissent paz
With c.Resize(, 11)
    tablo = .Value 'matrice, plus rapis
    s = Split(tablo(1, 1), " - ")
    tablo(1, 2) = Right(s(9), 16)
    tablo(1, 3) = CDate(Left(s(9), 8))
    tablo(1, 6) = Trim(Split(s(0), ":")(1))
    tablo(1, 7) = "" 'à préciser
    tablo(1, 8) = s(2)
    tablo(1, 9) = "" 'à préciser
    tablo(1, 10) = Trim(Split(s(0), ":")(0))
    tablo(1, 11) = "" 'à préciser
    .WrapText = True 'renvoi à la ligne
    .Value = tablo 'restitution
    .Rows.AutoFit 'ajustement hauteur
End With
MsgBox "Transfert effectué"
End Sub
Elle se lance par les touches Ctrl + T mais on peut aussi l'affecter à un bouton.

A+
 

Pièces jointes

  • 03 Appels vers transfert.xlsm
    38.4 KB · Affichages: 1
Dernière édition:

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour Lionel, le forum,

Alors il suffit d'exécuter cette macro :
Code:
Sub Transfert()
'se lance par les touches Ctrl + T
Dim Fdest As Worksheet, c As Range, tablo, s
Set Fdest = Sheets("RdV_transfert TEST")
Sheets("Appels").Activate
If Fdest.FilterMode Then Fdest.ShowAllData 'si la feuille est filtrée
Set c = Fdest.Cells(Rows.Count, 1).End(xlUp)(2) '1ère cellule vide
If c.Row < 3 Then Set c = Fdest.[A3]
If ActiveCell.Row < 3 Or ActiveCell.Column <> 15 Or IsEmpty(ActiveCell) Then Exit Sub
c = ActiveCell 'copie la valeur
On Error Resume Next 'si des recherches n'aboutissent paz
With c.Resize(, 11)
    tablo = .Value 'matrice, plus rapis
    s = Split(tablo(1, 1), " - ")
    tablo(1, 2) = Right(s(9), 16)
    tablo(1, 3) = CDate(Left(s(9), 8))
    tablo(1, 6) = Trim(Split(s(0), ":")(1))
    tablo(1, 7) = "" 'à préciser
    tablo(1, 8) = s(2)
    tablo(1, 9) = "" 'à préciser
    tablo(1, 10) = Trim(Split(s(0), ":")(0))
    tablo(1, 11) = "" 'à préciser
    .WrapText = True 'renvoi à la ligne
    .Value = tablo 'restitution
    .Rows.AutoFit 'ajustement hauteur
End With
MsgBox "Transfert effectué"
End Sub
Elle se lance par les touches Ctrl + T mais on peut aussi l'affecter à un bouton.

A+
Bonjour et MERCI Gérard :)

C'est nickel comme d'habitude :
J'ai 2 interrogations :
1 - "Sélectionnez une cellule en colonne "O" et appuyez sur les touches Ctrl + T"
J'ai à intégrer ton code dans mon code lol = trl+T obligatoire ?
VB:
Dans mon fichier de travail, le code dont j'ai besoin sera inséré dans un code existant qui sera en cours d'exécution, genre :
Sub Gérard()
début de mon code

ton code d'écriture dans la feuille "RdV_transfert TEST

fin de mon code
End Sub
2 - Ton code "Tablo" ne va pas poser de problème dans mon code ?

Je vais tester de mon côté.
Encore MERCI :)
 

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Encore merci, effectivement, c'est bon, donc je peux intégrer dans mon code :)
Bon sang, j'y comprends rien :
tablo(1, 2) = Right(s(9), 16)
tablo(1, 3) = CDate(Left(s(9), 8))
tablo(1, 6) = Trim(Split(s(0), ":")(1))
tablo(1, 7) = "" 'à préciser
tablo(1, 8) = s(2)
tablo(1, 9) = "" 'à préciser
tablo(1, 10) = Trim(Split(s(0), ":")(0))
Si tu veux bien, à quoi ça correspond ? les chiffres, split, trim etc.
:)
 

job75

XLDnaute Barbatruc
tablo(1, n) tu comprends ? n c'est le numéro de colonne., la numérotation commence à 1

s(n) c'est l'élément n du tableau s, la numérotation commence à 0.

Pour Split ou Trim ou CDate fait une recherche sur le web (ou XLD).
 

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
tablo(1, n) tu comprends ? n c'est le numéro de colonne., la numérotation commence à 1

s(n) c'est l'élément n du tableau s, la numérotation commence à 0.

Pour Split ou Trim ou CDate fait une recherche sur le web (ou XLD).
OUI, mais imaginons que les colonnes de mon fichier changent et ce que ne soit plus dans "Appels" la cellule active en colonne "O" mais en col "L", il faudrait que je modifie comment ?
:)
 

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bon, ça j'ai trouvé lol :)
Re-Gérard :)
Tout nickel vrtaiment merci :)
J'ai modifié la Feuille "Appel", permetra certainement de simplifier ton code ?

tablo(1, 2) = Right(s(9), 16) 'date RdV
peut se prendre directement sur la cellule col K ligne active de la feuille Appels

tablo(1, 3) = CDate(Left(s(9), 8))'date appel = NE PAS MODIFIER
tablo(1, 6) = Trim(Split(s(0), ":")(1)) 'nom du prospect
peut se prendre directement sur la cellule col B ligne active de la feuille Appels

tablo(1, 7) = "" 'à préciser 'Tel du prospect
Si Col E ligne activeNON vide se prendre directement sur la cellule col E ligne active de la feuille Appels
Si Col E ligne active vide se prendre directement sur la cellule col F ligne active de la feuille Appels


tablo(1, 8) = s(2) 'nom réseau
peut se prendre directement sur la cellule col A ligne active de la feuille Appels
ou Feuille "SMS RdV" cellule C7


tablo(1, 9) = "" 'tel réseau
se prend Feuille "SMS RdV" cellule B6

tablo(1, 10) = Trim(Split(s(0), ":")(0)) 'Prénom commerciale= NE PAS MODIFIER
tablo(1, 11) = "" 'Tel commerciale
se prend Feuille "SMS RdV" cellule D4
Je joins le classeur modifé
Ta patience va devenir légendaire.
Merci Gérard :)
 

Pièces jointes

  • Appels vers transfert Gérard.xlsm
    44.6 KB · Affichages: 3

job75

XLDnaute Barbatruc
Le problème initial &tait de copier uniquement la cellule active de la feuille "Appels".

Maintenant tu veux également copier plusieurs cellules de la feuille "SMS RdV".

Tu dois être capable d'effectuer les modifications que tu indiques au post #23.
 

Discussions similaires

Réponses
12
Affichages
309

Statistiques des forums

Discussions
312 209
Messages
2 086 259
Membres
103 167
dernier inscrit
miriame