Xl Aide sur code Vba type rechercheV
Résolu/Fermé
7808622H
Messages postés
292
Date d'inscription
samedi 23 février 2008
Statut
Membre
Dernière intervention
19 mai 2018
-
Modifié par 7808622H le 13/07/2010 à 12:19
7808622H Messages postés 292 Date d'inscription samedi 23 février 2008 Statut Membre Dernière intervention 19 mai 2018 - 19 juil. 2010 à 22:09
7808622H Messages postés 292 Date d'inscription samedi 23 février 2008 Statut Membre Dernière intervention 19 mai 2018 - 19 juil. 2010 à 22:09
A voir également:
- Xl Aide sur code Vba type rechercheV
- Code asci - Guide
- Code puk bloqué - Guide
- Code telephone oublié - Guide
- Code activation windows 10 - Guide
- Code gta 4 ps4 - Guide
5 réponses
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
12 juil. 2010 à 09:10
12 juil. 2010 à 09:10
Bonjour,
Merci de mettre la pièce jointe en .zip et non en .rar
Merci de mettre la pièce jointe en .zip et non en .rar
7808622H
Messages postés
292
Date d'inscription
samedi 23 février 2008
Statut
Membre
Dernière intervention
19 mai 2018
4
15 juil. 2010 à 19:40
15 juil. 2010 à 19:40
Bonsoir, personne pour me donner un tit coup de main sur ce fichier?
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 712
Modifié par gbinforme le 16/07/2010 à 22:45
Modifié par gbinforme le 16/07/2010 à 22:45
bonjour
- Met en forme l'extraction de base selon les besoin du fichier en créant un onglet " Global" ( ca ca marche)
Sauf si l'onglet " Global" existe déjà et je te propose de remplacer :
Sheets("Comptables").Select
Sheets.Add
ActiveSheet.Name = "Global"
par ceci :
- Cherche le nom des comptables sur l'onglet "comptable" pour les insérer dans le tableau "Global" et pour qu'il soient incrémentés en fonction de la BUAP ( c'est la que ca plante)
- L'étape suivante serait la même chose que la recherche du nom du comptable mais pour indiquer le type d'établissement toujours en fonction de la BUAP
Tu peux utiliser ceci :
- Etape suivante, un onglet doit être créer a partir de la liste global , nominatif, par comptable en allant chercher les critères de nom de comptable dans la liste de l'onglet comptable ( e ncolonne F). En gros, le principe serait de selectionner toutes les lignes de chaque comptable pour les coller dans un onglet au nom du comptable
Tu peux utiliser ceci :
Bon test.
Edit : petite modification du dernier module pour permettre plusieurs mise à jour de suite.
Toujours zen
- Met en forme l'extraction de base selon les besoin du fichier en créant un onglet " Global" ( ca ca marche)
Sauf si l'onglet " Global" existe déjà et je te propose de remplacer :
Sheets("Comptables").Select
Sheets.Add
ActiveSheet.Name = "Global"
par ceci :
Sheets("Comptables").Select On Error Resume Next Sheets("Global").Activate If Err.Number <> 0 Then Sheets.Add ActiveSheet.Name = "Global" End If
- Cherche le nom des comptables sur l'onglet "comptable" pour les insérer dans le tableau "Global" et pour qu'il soient incrémentés en fonction de la BUAP ( c'est la que ca plante)
- L'étape suivante serait la même chose que la recherche du nom du comptable mais pour indiquer le type d'établissement toujours en fonction de la BUAP
Tu peux utiliser ceci :
Sub cherchecomptables() Dim nbrligne As Long With Sheets("Global") nbrligne = .Cells(.Columns(2).Cells.Count, 2).End(xlUp).Row - 1 .Range("D2").NumberFormat = "General" .Range("D2").FormulaR1C1 = "=VLOOKUP(RC[-2],Comptables!C1:C3,2,0)" .Cells(2, 4).AutoFill Destination:=.Cells(2, 4).Resize(nbrligne, 1) .Range("A2").NumberFormat = "General" .Range("A2").FormulaR1C1 = "=VLOOKUP(RC[1],Comptables!C1:C3,3,0)" .Cells(2, 1).AutoFill Destination:=.Cells(2, 1).Resize(nbrligne, 1) End With End Sub
- Etape suivante, un onglet doit être créer a partir de la liste global , nominatif, par comptable en allant chercher les critères de nom de comptable dans la liste de l'onglet comptable ( e ncolonne F). En gros, le principe serait de selectionner toutes les lignes de chaque comptable pour les coller dans un onglet au nom du comptable
Tu peux utiliser ceci :
Sub copie_comptable() ' copie lignes Const col = 4 ' "D" Const dat = "U1" ' plage date modif Const tit = "A1:T1" ' plage du titre Dim f As Integer, nom As String, dmaj As Variant Dim lig As Long, lgc As Long Application.ScreenUpdating = False dmaj = Now With Sheets("Global") ' boucle sur onglet global For lig = 2 To .Cells(Columns(1).Cells.Count, 2).End(xlUp).Row For f = 1 To Sheets.Count ' recherche onglet identique nom = Sheets(f).Name If .Cells(lig, col).Value = Sheets(f).Name Then Exit For Next f If .Cells(lig, col).Value <> nom Then ' non trouvé : création Sheets.Add After:=Sheets(f - 1) ActiveSheet.Name = .Cells(lig, col).Text ' nommage .Range(tit).Copy Destination:=ActiveSheet.Range(tit) ActiveSheet.Range(dat).Value = dmaj f = ActiveSheet.Index Else If Sheets(f).Range(dat).Value <> dmaj Then Sheets(f).Rows(2).Resize(Sheets(f).UsedRange.Rows.Count).Delete Sheets(f).Range(dat).Value = dmaj End If End If lgc = Sheets(f).Cells(Columns(1).Cells.Count, 1).End(xlUp).Row + 1 .Rows(lig).Copy Destination:=Sheets(f).Rows(lgc) Next lig End With Application.ScreenUpdating = True End Sub
Bon test.
Edit : petite modification du dernier module pour permettre plusieurs mise à jour de suite.
Toujours zen
7808622H
Messages postés
292
Date d'inscription
samedi 23 février 2008
Statut
Membre
Dernière intervention
19 mai 2018
4
Modifié par 7808622H le 17/07/2010 à 15:58
Modifié par 7808622H le 17/07/2010 à 15:58
bonjour gbinforme
alors j'ai fait toutes les modifs que tu m'as donné et a vue de nez ca marche pratiquement jusqu'au bout
seul truc j'ai un bug a un moment donné
je t'ai joint l'image du bug dans le zip avec le fichier modifié
par contre concernant l'onglet "global" j'ai fait ta modif, mais le fichier sera repris a partir d'un fichier vièrge a chaque semaine
voila le fichier a jour avec l'etractin et le bug
https://www.cjoint.com/?hrp3n5fdPe
merci d'avance pour ta réponse, et deja merci bcp pour m'avoir aidé
Surtout en cette période de vacance avec moins de personnel, si je peux l'avoir lundi ca serait génialissime
CED
alors j'ai fait toutes les modifs que tu m'as donné et a vue de nez ca marche pratiquement jusqu'au bout
seul truc j'ai un bug a un moment donné
je t'ai joint l'image du bug dans le zip avec le fichier modifié
par contre concernant l'onglet "global" j'ai fait ta modif, mais le fichier sera repris a partir d'un fichier vièrge a chaque semaine
voila le fichier a jour avec l'etractin et le bug
https://www.cjoint.com/?hrp3n5fdPe
merci d'avance pour ta réponse, et deja merci bcp pour m'avoir aidé
Surtout en cette période de vacance avec moins de personnel, si je peux l'avoir lundi ca serait génialissime
CED
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 712
17 juil. 2010 à 18:48
17 juil. 2010 à 18:48
bonjour
Ton bug ne vient pas de ma macro mais de la première que tu exécutes qui ne fonctionne pas aussi bien que cela : si tu la rectifies ainsi elle fonctionnera et le reste avec :
Le précédent code ne traitait pas correctement la fin du fichier car les 10 premières lignes de la colonne D n'ont pas de données :
deli = WorksheetFunction.CountA(Range("D:D")) + 1
Ton bug ne vient pas de ma macro mais de la première que tu exécutes qui ne fonctionne pas aussi bien que cela : si tu la rectifies ainsi elle fonctionnera et le reste avec :
Sub ConvertirNumBU_Nombre() Dim deli As Integer ' *** convertir le n° BUAP en nombre dans l'extraction d'origine Sheets("Extraction").Select deli = Cells(Columns(1).Cells.Count, 4).End(xlUp).Row Range("D1").Value = 1 Range("D1").Copy Range("D12:D" & deli).PasteSpecial Paste:=xlPasteAll, Operation:=xlMultiply, _ SkipBlanks:=False, Transpose:=False Range("D:D").NumberFormat = "General" Range("D1") = "" End Sub
Le précédent code ne traitait pas correctement la fin du fichier car les 10 premières lignes de la colonne D n'ont pas de données :
deli = WorksheetFunction.CountA(Range("D:D")) + 1
7808622H
Messages postés
292
Date d'inscription
samedi 23 février 2008
Statut
Membre
Dernière intervention
19 mai 2018
4
17 juil. 2010 à 19:22
17 juil. 2010 à 19:22
bon bah y a pas autre chose a dire, t es u nchef !!!!
merci bcp bcp je m'attarderai si j epeux ce week end histoire de comprendre la totalité de ce que tu m'as envoyé par rapport au code complet
si j'ai des question de compréhension je peux me retourner vers toi ?
merci bcp bcp je m'attarderai si j epeux ce week end histoire de comprendre la totalité de ce que tu m'as envoyé par rapport au code complet
si j'ai des question de compréhension je peux me retourner vers toi ?
7808622H
Messages postés
292
Date d'inscription
samedi 23 février 2008
Statut
Membre
Dernière intervention
19 mai 2018
4
17 juil. 2010 à 20:22
17 juil. 2010 à 20:22
ah vi une tite question j'ai fait tout mes tableau etc, j ai mis le fichier en lecture seule
mais je cherche un code que je trouve pas
lorsque le code complet est terminé j ai un msgbox qui arrive et qui previent que le fichier est en lecture seule et qu'il faut penser a enregistrer
je cherche le code qui permet d'ouvrir la fenetre d'enregistrer sous , comem si on faisait un appui sur la touche F12
sans incrementer de nom ni d'empalcement, juste lancer la fenetre poru que l'utilisateur le fasse totu de suite
Je trouve pas mal de code qui oblige a mettre u nnom ou un chemin d'enregistremetn mais pas la commande pour juste ouvrir la boite de dialogue d'enregistrement sous
si tu as ca sous le coude ca serait top
Merci d'avance
mais je cherche un code que je trouve pas
lorsque le code complet est terminé j ai un msgbox qui arrive et qui previent que le fichier est en lecture seule et qu'il faut penser a enregistrer
je cherche le code qui permet d'ouvrir la fenetre d'enregistrer sous , comem si on faisait un appui sur la touche F12
sans incrementer de nom ni d'empalcement, juste lancer la fenetre poru que l'utilisateur le fasse totu de suite
Je trouve pas mal de code qui oblige a mettre u nnom ou un chemin d'enregistremetn mais pas la commande pour juste ouvrir la boite de dialogue d'enregistrement sous
si tu as ca sous le coude ca serait top
Merci d'avance
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 712
17 juil. 2010 à 21:33
17 juil. 2010 à 21:33
bonsoir
Avec ceci tu obliges l'utilisateur à faire un enregistrement dans le répertoire et avec le nom choisis :
Avec ceci tu obliges l'utilisateur à faire un enregistrement dans le répertoire et avec le nom choisis :
Dim reponse Do reponse = Application.GetSaveAsFilename Loop While reponse = False Application.DisplayAlerts = False ActiveWorkbook.SaveAs Filename:=reponse, FileFormat:=xlNormal Application.DisplayAlerts = True
7808622H
Messages postés
292
Date d'inscription
samedi 23 février 2008
Statut
Membre
Dernière intervention
19 mai 2018
4
19 juil. 2010 à 22:09
19 juil. 2010 à 22:09
nickel chrome tout marche a merveille
c est cool encore un enorme merci
c est cool encore un enorme merci
12 juil. 2010 à 12:54
Désolé