De l'aide pour une macro boucle

titi7500

XLDnaute Junior
Bonjour j'ai un petit soucis, ne sachant pas utiliser la fonction vba d'excel, je n'arrive pas à créer une macro répondant à mon problèmes.

Je vous explique rapidement.

J'ai un fichier excel avec dedans un onglet qui me sert d'extraction et j'ai plusieurs onglet . Chaque onglet porte le code que l'on peut trouver dans la colonne B de l'onglet extraction.

Ce que je souhaite c'est que les donnés de l'extraction se copie colle de la ligne A à la ligne D dans l'onglet en fonction de la colonne B et que la macro boucle se stop quand je n'ai plus rien dans la colonne B.

Il y a une extraction mensuelle on peut atteindre facilement les 10k lignes dans l'extraction

Ci joint un extrait de mon fichier excel.

Une petite aide de votre part serait très apprécié.

Merci par avance.
 

Pièces jointes

  • test.xlsx
    12.2 KB · Affichages: 34

titi7500

XLDnaute Junior
ca va trop vite pour moi oui pour moi c'est du chinois et en plus si dans vos messages vous mettez des phrases imagées j'ai du mal a faire la distinction entre la macro et les phrase imagées.

Deja le codename je l'ai trouvé avant d'avoir l'image dans la réponse certe je suis tombé dessus comme ca mais j'ai trouvé quand meme :)

Ensuite j'ai un probleme que je ne trouve pas du moins je comprends pas je vais vous balancer toute la macro je vais vous expliquer ce que je souhaite et j'aimerais une solution pour trouver le probleme.

voici la macro:

"
Sub dispatch3()
Dim i As Integer, j As Integer, k As Integer, l As Integer, derligne As Long 'Déclaration des variables
derligne = Feuil365.Range("B" & Rows.Count).End(3).Row
If MsgBox("Voulez vous lancer la macro ?", vbYesNo) = vbNo Then Exit Sub 'Si la réponse est non, on sort de la procédure
For i = 2 To Sheets.Count 'Pour i= 2 jusqu'au nombre de feuilles du classeur
Sheets(i).[A10].CurrentRegion.Clear 'Pour chaque feuille, on supprime tout ce qu'il y a autour de la cellule A9
For l = 2 To derligne.Row
If Cells(l, 2) Like Sheets(i).Name Then 'si la cellule (i,2), donc B2 est égale au nom de la feuille, alors
For j = l To Range("B" & Rows.Count).End(3).Row 'pour j=1 jusqu'à la dernière ligne vide en remontant du bas
If Cells(j, 2) Like Sheets(i).Name Then 'si la cellule (j,2), donc A2 est égale au nom de la feuille, alors
If Sheets(i).Range("A10") = "" Then 'si sur la feuille concernée la cellule A9 est vide alors
Sheets(i).Range("A10") = Cells(j, 1) 'on écrit les données de la 1ère feuille en A9
For k = 1 To 26 'pour k de 1 à 26
Sheets(i).Range("A" & Rows.Count).End(3).Rows(1).Offset(, k) = Cells(j, k + 1) 'on écrit la suite sur les 26 colonnes
Next
Else 'sinon
Sheets(i).Range("A" & Rows.Count).End(3).Rows(2) = Cells(j, 1) 'on écrit à partir de la dernière cellule vide trouvée
For k = 1 To 26
Sheets(i).Range("A" & Rows.Count).End(3).Rows(1).Offset(, k) = Cells(j, k + 1)
Next
End If
End If
Exit For
Next
End If
Next l
Next 'et on recommence pour la ligne suivante
MsgBox "Opération terminée"
End Sub
"
Donc pour faire court j'ai 300 onglets tous rename par un numero de code. tous les mois je fais une extraction dans cette extraction il y a dans la colonne B le meme code que sur les onglets. Ce que j'aimerais c'est que la macro fasse un copier coller de la ligne A jusqu'a la Z puis la colle dans l'onglet qui aura le meme code que la colonne B de l'extraction.
Clavus avait fait une macro genial qui fonctionnais sur le fichier test mais ne fonctionne pas sur le fichier original. j'ai modifier le codename par rapport au fichier original mais rien y fait il y a un soucis de compilation d'apres excel.

Pouvez vous apporter les modifications sur le code en surlignant en jaune svp ?
 

titi7500

XLDnaute Junior
aucune idée .... oui je débute et oui je vais me mettre à vraiment bien utiliser les macros mais avant de pouvoir prendre le temps de faire ca je dois terminer ce travail .... et pour le moment je suis vos recommandations et vos macros ... et depuis que j'ai cette macro aves les variables que l'on trouve dedans voici le code erreur que j'ai : " erreur de compilation qualificateur incorrect"
 

titi7500

XLDnaute Junior
retournement de situation :) je me suis demandé ce qu'il pouvait se passer si je refaisait un nouveau fichier mais que les codename se suivent... bah verdicte cela fonction :) la macro fonctionne :p ( je dois faire des tests pour en etre sur mais cela à l'air de fonctionner au premier abord). je vous tiens au courant :)
 

titi7500

XLDnaute Junior
petite question , j'ai réalisé une macro pour ouvrir un fichier excel (oui je l'ai fait solo :p) ma question est peut-on faire un hypertexte vers un onglet specifique d'un autre fichier excel ? Je sais qu'on peut faire un hypertexte vers un autre fichier excel mais je voudrais un lien hypertexte vers un onglet specifique d'un autre fichier excel
 

Staple1600

XLDnaute Barbatruc
Re

Pour finir ne te pas t'embrouiller les pinceaux, ouvre plutôt une nouvelle discussion pour cette histoire de lien hypertexte
(C'est ce que la charte du forum conseille: une question, une discussion)

Ou mieux, n'ouvre pas de discussion pour à la place utiliser le moteur de recherche du forum pour te rendre compte que tu as déjà la réponse à la question (dans les archives du forum) que tu n'as pas encore posée ;)
 

Calvus

XLDnaute Barbatruc
Bonsoir,

je ne vois pas de End (xlUp) ,est ce normal ?
mais des End(3).Rows(1)
je ne connais peut etre pas cette facon de faire
C'est la même chose Jean-Marie :)

je voudrais un lien hypertexte vers un onglet specifique d'un autre fichier excel
Oui tu peux.
Un clic droit et choisir Lien hypertexte.

A+
Edit hello Staple ;)
 
Dernière édition:

cp4

XLDnaute Barbatruc
Bonjour Staple1600:), Calvus:), Titi7500:)

End(3) est équivalent à End(xlUp), j'avais trouvé sur le net mais aujourd'hui je ne suis pas parvenu à retrouver l'info. Je sais que xlUp, xlDown, etc... ont un équivalent numérique.

@titi7500 : il fallait retirer Row de derligne (derligne au lieu de derligne.Row)

Bonne journée!;)
 

Discussions similaires

Réponses
12
Affichages
242
Réponses
3
Affichages
422
Réponses
21
Affichages
286

Statistiques des forums

Discussions
312 203
Messages
2 086 191
Membres
103 152
dernier inscrit
Karibu