Transférer données de F1 vers F 2 avec variables
Bonjour,
Travaillant dans la téléphonie, je souhaite mettre en place une macro qui me permette de copier les informations que j'entre dans la Feuille 1 pour le collecter et classer dans la Feuille 2, afin de pouvoir faire une analyse des problèmes que le personnel rencontre le plus souvent.
Pour synthétiser:
Avec un bouton, je souhaite copier ces données vers feuille 2, mais avec des conditions.
- Si le nom de l'utilisateur est déjà présent : ne pas recoller le nom pour éviter les doublons
- puis coller la valeur des colonnes que j'ai nommé "Test1" et "Test2" ( de feuille 1 vers Feuille 2)
- Mais si la cellule n'est pas dispo, créer une ligne pour coller dans la colonne correspondante
Tous ceci liés au nom de l'utilisateur, car si un nom ressort, je souhaite que les données "TEST" soient collés en dessous.
Je suis débutante, alors j'ai fais ce que j'ai pu avec ce que j'ai trouvé sur internet, alors un coup de main de votre pars sera la bien venu.
Voici ce que j'ai commencé à écrire, il y a surement pleins d'erreurs car cela ne fonctionne pas :
Sub AAAA()
'Déclaration variables
Dim Plage As Range
Dim Lignes(), i As Long
Dim Flag As Boolean
Dim varTexte As String
varTexte = Range("F9")
Set Plage = Sheets("A").Columns(A) 'plage de recherche
Texte = Range("F9") 'expression cherchée
Flag = Find_Next(Plage, Texte, Lignes()) 'appel de la fonction
If Flag Then 'si fonction retourne Vrai = expression trouvée dans la plage
For i = LBound(Lignes) To UBound(Lignes) 'restitution des lignes correspondantes
Debug.Print Lignes(i)
Next i
Else
Sheets("A").Select
Range("F9").Select
Selection.Copy
Sheets("B").Select
Columns(A).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End If
End Sub
PS : je n'arrive pas à joindre mon fichier excel, alors j'espère que vous arriverez à me comprendre.
Bonsoir et bienvenu(e)
SIONG a écrit :je n'arrive pas à joindre mon fichier excel
Regardes ici
https://forum.excel-pratique.com/annonces/explications-et-regles-a-respecter-t13.html#p113415
Bonjour, les fichiers ont un poids maximum pour être joint. Joignez une copie de votre fichier avec une vingtaine de ligne seulement et un exemple du résultat escompté. Cela multipliera vos chances d'obtenir une réponse.
Edit : Salutation BAnzaï...sur un autre post je t'ai répondu que le dictionary est sensible à la casse car c'est une méthode et non une propriété...Me suis-je trompé dans mon raisonnement ?
Bonjour
@ Force rouge
J'avais bien lu ta réponse et j'en avais pris acte, jusqu'à la prochaine fois où certainement j'aurai oublié (je n'ai que de la RAM et RAZ du disque dur tous les jours
Force rouge a écrit :Me suis-je trompé dans mon raisonnement ?
Je ne peux te le dire, moi j'ai pris pour argent comptant ce que tu as dis, je ne suis pas assez calé sur ça pour te contredire
Amicalement
Bonsoir Banzai & Force rouge
J'avais noté au passage cette indication que dictionary était sensible à la casse. Ça m'a surpris, je croyais le contraire ! Ce serait intéressant de confirmer ?
SIONG
Sans classeur difficile de voir ce que tu veux faire.
Quant à ta macro, sans savoir où elle va, à la lecture, je bute déjà sur la ligne :
Flag = Find_Next(Plage, Texte, Lignes())
Il semble que Find_Next soit une fonction qui doit te renvoyer une valeur booléenne en recherchant Texte dans Plage.
Je ne connais pas de fonction VBA ni Excel portant ce nom. Fonction personnalisée ?
Et comment intervient Lignes(), tableau dynamique déclaré en début de procédure qu'on n'a pas vu réapparaître avant pour le dimensionner et lui affecter quoi que ce soit ?
Cordialement,
Ferrand