AIDE MACRO - utilisation que d'un onglet

Bonjour

J'ai un petit souci sur mon fichier excel,

J'ai 3 onglet (le premier s'appelle A, le deuxième B et le troisième C).

Je voudrai utiliser les données de l'onglet C pour les insérer dans un nouvel onglet D(en quatrième position) sans supprimer les autres.

Je vous joins un exemple.

test1 le fichier actuel

et test2 le fichier avec la nouvelle macro

ps : je sais faire la somme des enfants et la suppression des lignes c'est plus de passer d'un onglet à l'autre où je n'arrive pas

Merci de votre attention.

Bonne soirée.

22test1.xls (16.50 Ko)
22test2.xls (14.00 Ko)

Bonsoir,

Réponse dans fichier avec TCD

Cdlt.

23test2.zip (6.36 Ko)

Bonjour,

Voici une solution avec un dictionnaire pour établir la liste des noms.

A+

27test.zip (11.97 Ko)

Re

Jean Eric : merci mais j'ai pas besoin d'un TCD (une macro me suffit)

frangy : merci mais je vois pas l'utilité d'un dictionnaire ? pas besoin d'établir la liste des noms

sinon ça marche nickel mais le hic c'est que je n'arrive pas à comprendre comment tu fais pour passer d'un onglet à un autre

Je ne vois pas l'utilité d'un dictionnaire. Pas besoin d'établir la liste des noms.

L’intérêt du Dico, c’est qu'il te permet d'établir une liste de noms sans doublon. Ensuite, il suffit de passer la liste en revue et d’associer le résultat recherché (nombre d’enfant par exemple) à chacun de ces noms.

Il y a plusieurs possibilités pour arriver à ce même résultat mais tout dépend de la structure et du contenu réels de ton fichier. (Exemple : si dans ta liste il n’y a que des enfants, inutile de tester ce paramètre pour incrémenter le compteur).

Si tu avais transmis ton code, il aurait été plus facile de choisir l’adaptation idoine.

je n'arrive pas à comprendre comment tu fais pour passer d'un onglet à un autre

Je ne passe pas d’une feuille à l’autre. Je cherche les valeurs dans la feuille C, je calcule le résultat attendu (nombre d’enfants) et j’affecte ces données à des cellules de la feuille D.

Il n’y a pas de sélection de feuille ou de cellulle.

Exemple :

Worksheets("D").Range("A" & Ligne).Resize(1, 3) = C.Offset(0, -1).Resize(1, 3).Value

Ou

Worksheets("D").Range("D" & Ligne).Value = Compteur

A+

Bonjour à tous,

Le fil.

Pour le fun

Dans un module

Function SansDoublonsTrié(champ As Range)
   Dim temp()
   ReDim temp(1 To champ.Count)
   j = 1
   For i = 1 To champ.Count
      témoin = Not IsError(Application.Match(champ(i), temp, 0))
      If Not témoin And champ(i) <> "" Then temp(j) = champ(i): j = j + 1
   Next i
   Call tri(temp, 1, j - 1)
   SansDoublonsTrié = Application.Transpose(temp)
End Function

Sub tri(a, gauc, droi)          ' Quick sort
 ref = a((gauc + droi) \ 2)
 g = gauc: d = droi
 Do
     Do While a(g) < ref: g = g + 1: Loop
     Do While ref < a(d): d = d - 1: Loop
     If g <= d Then
       temp = a(g): a(g) = a(d): a(d) = temp
       g = g + 1: d = d - 1
     End If
 Loop While g <= d
 If g < droi Then Call tri(a, g, droi)
 If gauc < d Then Call tri(a, gauc, d)
End Sub

En feuil D

Col A

=sansdoublonstrié(C!A2:A100)

Valider avec Maj+Ctrl+Entrée Formule matricielle

Idem pour B et C

Pour D =NB.SI('C'!A:A;A2) à tirer vers le bas

17test-formules.zip (16.84 Ko)

Bonjour,

frangy : merci pour tes explications, mais j'ai encore un petit souci, enfaîte dans mon premier fichier (test1) l'onglet D n'existe pas, il faut donc le créer, et je suis coincée là dessus.

Si tu aurais une solution (j'ai testé avec une macro enregistrée mais il m'affiche une erreur :/)

Merci

Bonjour,

J'ai intégré la partie création de la feuille "D" dans la procédure.

A+

19test-1.zip (12.80 Ko)

Re,

Merci de ton aide

Je te joins ma macro que j'ai fait, si tu pouvais essayer de voir où il y a un souci si tu as le temps

Merci encore

15classeur1.zip (7.41 Ko)

Re,

1) Maccro n’est pas une fonction mais une procédure.

2) La procédure Maccro est censée copier des éléments de la feuille "C" vers la feuille "D".

Si la feuille "C" n’existe pas ... problème.

3) Et surtout, ta procédure ne correspond pas du tout à celle que je t’ai envoyée. Si cette dernière ne donne pas le résultat que tu attends, dis-moi ce qui ne te convient pas.

A+

19classeur1.zip (12.86 Ko)

Bonjour,

Pardon dans ma précipitation hier j'ai zappé quelques lignes de code

Je t'explique le fonctionnement de ma macro (qui ne correspond pas à la tienne, c'est juste celle que j'ai essayé de mettre en place tout seul mais elle bug) :

J'ouvre le fichier test1 avec ma fonction appel

et ma fonction macro fais le reste

PS : si test1 comprend la feuille D il faut la supprimer

Merci

11classeur1.zip (9.35 Ko)
14test-1.zip (10.40 Ko)
Rechercher des sujets similaires à "aide macro utilisation que onglet"