Erreur d’exécution '91'
Résolu/Fermé
steph575
Messages postés
42
Date d'inscription
vendredi 23 juin 2017
Statut
Membre
Dernière intervention
23 janvier 2019
-
31 août 2018 à 10:58
steph575 Messages postés 42 Date d'inscription vendredi 23 juin 2017 Statut Membre Dernière intervention 23 janvier 2019 - 14 nov. 2018 à 11:39
steph575 Messages postés 42 Date d'inscription vendredi 23 juin 2017 Statut Membre Dernière intervention 23 janvier 2019 - 14 nov. 2018 à 11:39
Bonjour,
J'ai créer une base de données, et je rencontre plusieurs petits problèmes.
J'ai actuellement 2063 ligne dans mon tableau "recap" Dans la fenêtre recherche, si j'entre un numéro qui n'existe pas j'ai un message d'erreur " Erreur d’exécution '91' : variable objet ou variable de bloc Whit non définie"
Si je clique sur Fin je sort de mon UserForm et si je clique sur Débogage, je me retrouve sur ma fenêtre de code.
Ma question est la suivante, comment faire, pour afficher simplement un message me disant que la référence entrée n'existe pas.
Mon second problème est que si une personne qui s'est servie de la base de donner, laisse des filtres actifs dans le tableau "récap", quand moi je vais vouloir faire une nouvelle entrée, le numéro "automatique" m'affiche le suivant après le filtre, alors que celui-ci est déjà pris.
Comment faire, pour que même des filtres activés, je peux continuer ma saisie sans risque.
Un grand merci à ceux qui me viendront en aide.
J'ai créer une base de données, et je rencontre plusieurs petits problèmes.
J'ai actuellement 2063 ligne dans mon tableau "recap" Dans la fenêtre recherche, si j'entre un numéro qui n'existe pas j'ai un message d'erreur " Erreur d’exécution '91' : variable objet ou variable de bloc Whit non définie"
Si je clique sur Fin je sort de mon UserForm et si je clique sur Débogage, je me retrouve sur ma fenêtre de code.
Ma question est la suivante, comment faire, pour afficher simplement un message me disant que la référence entrée n'existe pas.
Mon second problème est que si une personne qui s'est servie de la base de donner, laisse des filtres actifs dans le tableau "récap", quand moi je vais vouloir faire une nouvelle entrée, le numéro "automatique" m'affiche le suivant après le filtre, alors que celui-ci est déjà pris.
Comment faire, pour que même des filtres activés, je peux continuer ma saisie sans risque.
Un grand merci à ceux qui me viendront en aide.
A voir également:
- Erreur 91 vba
- Erreur 0x80070643 - Accueil - Windows
- +33 9 74 72 91 48 ✓ - Forum Mobile
- Une erreur s'est produite instagram ✓ - Forum Instagram
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
- Erreur 1004 vba ✓ - Forum VB / VBA
10 réponses
f894009
Messages postés
17206
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
22 novembre 2024
1 711
11 oct. 2018 à 16:32
11 oct. 2018 à 16:32
Bonjour,
Question simple: quel est le separateur de decimale de votre EXCEL, un point ou une virgule??
Question simple: quel est le separateur de decimale de votre EXCEL, un point ou une virgule??
jordane45
Messages postés
38346
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 décembre 2024
4 717
31 août 2018 à 11:00
31 août 2018 à 11:00
Bonjour,
Sans voir ton code.. impossible de te répondre.
Il faudrait également nous montrer la ligne de code sur laquelle apparaît le message d'erreur (lorsque tu fais débogage )
Sans voir ton code.. impossible de te répondre.
Il faudrait également nous montrer la ligne de code sur laquelle apparaît le message d'erreur (lorsque tu fais débogage )
steph575
Messages postés
42
Date d'inscription
vendredi 23 juin 2017
Statut
Membre
Dernière intervention
23 janvier 2019
Modifié le 31 août 2018 à 11:38
Modifié le 31 août 2018 à 11:38
Dim sepdec Dim eng1 As Currency Dim factur1 As Currency Sub Macro1() Load UserForm1 UserForm1.Show End Sub Private Sub BDC_Click() End Sub Private Sub CommandButton3_Click() Unload Me End Sub Private Sub DF_Change() End Sub Private Sub ENG_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) sepdec = Application.International(xlDecimalSeparator) If Chr(KeyAscii) = "." Or Chr(KeyAscii) = "," Then KeyAscii = Asc(sepdec) If Chr(KeyAscii) <> "," Then If Not IsNumeric(Chr(KeyAscii)) Then MsgBox ("Remplacer le point par une virgule !"): ENG.Text = "": Exit Sub End If End Sub Private Sub FACTUR_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) sepdec = Application.International(xlDecimalSeparator) If Chr(KeyAscii) = "." Or Chr(KeyAscii) = "," Then KeyAscii = Asc(sepdec) If Chr(KeyAscii) <> "," Then If Not IsNumeric(Chr(KeyAscii)) Then MsgBox ("Remplacer le point par une virgule !"): FACTUR.Text = "": Exit Sub End If End Sub Private Sub Frame1_Click() End Sub Private Sub Frame2_Click() End Sub Private Sub Label51_Click() End Sub ' enregistrement modifications dans la feuille BDCM Private Sub MODIFS_Click() Dim l As Integer If MsgBox("confirmez-vous l'enregistrement des modifications ?", vbYesNo) = vbYes Then With Sheets("RECAP") l = .Columns(1).Find(RECHER, , , , xlByColumns, xlNext).Row 'pour rechercher la ligne correspondante MsgBox l ' .Range("A" & l).Value = NUMBDCM .Range("B" & l).Value = saisiss .Range("C" & l).Value = DATE_BDCM .Range("D" & l).Value = numda .Range("E" & l).Value = TC .Range("F" & l).Value = FORM .Range("G" & l).Value = UNITE .Range("H" & l).Value = DAT_ACHT .Range("I" & l).Value = MOIS eng1 = ENG factur1 = FACTUR .Range("AH" & l).Value = eng1 .Range("AG" & l).Value = factur1 .Range("J" & l).Value = OBJET .Range("K" & l).Value = FOURNI .Range("L" & l).Value = MARCHE .Range("N" & l).Value = NUM_CDE .Range("O" & l).Value = NUMFAC .Range("T" & l).Value = CPV .Range("V" & l).Value = COUT .Range("AA" & l).Value = CF .Range("AB" & l).Value = DF .Range("AI" & l).Value = OBS .Range("AJ" & l).Value = DATE_DP .Range("AK" & l).Value = NUM_DP .Range("AL" & l).Value = AEC .Range("AM" & l).Value = DATE_CP .Range("AN" & l).Value = CPC .Range("AO" & l).Value = WFAE .Range("AD" & l).Value = NUMCA .Range("W" & l).Value = LG .Range("R" & l).Value = PCE .Range("it" & l).Value = TYP_DEP End With End If ' Vide les zones de saisie. NUMBDCM = "" saisiss = "" numda = "" ACTIV = "" TC = "" FORM = "" ENG = "0,00" FACTUR = "0,00" UNITE = "" DAT_ACHT = "" MOIS = "" OBJET = "" FOURNI = "" MARCHE = "" NUM_CDE = "" NUMFAC = "" CPV = "" COUT = "" CF = "" DF = "" OBS = "" DATE_DP = "" NUM_DP = "" AEC = "" DATE_CP = "" CPC = "" WFAE = "" NUMCA = "" LG = "" PCE = "" RECHER = "" TYP_DEP = "" ' Rend bouton Nvelle commande visible - cache bouton modifs NVLLECMMDE.Visible = True MODIFS.Visible = False nouveau_num End Sub ' enregistrement dans la feuille BDCM Private Sub NVLLECMMDE_Click() Dim l As Integer If MsgBox("confirmez-vous l'entrée de cette nouvelle entrée ?") - vbYesNo Then With Sheets("RECAP") l = .Columns(1).Find("*", , , , xlByColumns, xlPrevious).Row + 1 'pour placer le nouvel enregistrement sur la dernière ligne .Range("A" & l).Value = NUMBDCM .Range("B" & l).Value = saisiss .Range("C" & l).Value = DATE_BDCM .Range("D" & l).Value = numda .Range("E" & l).Value = TC .Range("F" & l).Value = FORM .Range("G" & l).Value = UNITE .Range("H" & l).Value = DAT_ACHT eng1 = ENG factur1 = FACTUR .Range("AH" & l).Value = eng1 .Range("AG" & l).Value = factur1 .Range("I" & l).Value = MOIS .Range("J" & l).Value = OBJET .Range("K" & l).Value = FOURNI .Range("L" & l).Value = MARCHE .Range("AD" & l).Value = NUMCA .Range("N" & l).Value = NUM_CDE .Range("O" & l).Value = NUMFAC .Range("T" & l).Value = CPV .Range("V" & l).Value = COUT .Range("AA" & l).Value = CF .Range("AB" & l).Value = DF .Range("AI" & l).Value = OBS .Range("AJ" & l).Value = DATE_DP .Range("AK" & l).Value = NUM_DP .Range("AL" & l).Value = AEC .Range("AM" & l).Value = DATE_CP .Range("AN" & l).Value = CPC .Range("AO" & l).Value = WFAE .Range("W" & l).Value = LG .Range("R" & l).Value = PCE .Range("it" & l).Value = TYP_DEP End With End If ' Vide les zones de saisie. NUMBDCM = "" saisiss = "" numda = "" TC = "" FORM = "" UNITE = "" ENG = "0,00" FACTUR = "0,00" DAT_ACHT = "" MOIS = "" OBJET = "" FOURNI = "" MARCHE = "" NUM_CDE = "" NUMFAC = "" CPV = "" COUT = "" CF = "" DF = "" OBS = "" DATE_DP = "" NUM_DP = "" AEC = "" DATE_CP = "" CPC = "" WFAE = "" NUMCA = "" LG = "" PCE = "" RECHER = "" NUMCA = "" Porteur = "" NOMCA = "" TYP_DEP = "" nouveau_num End Sub Private Sub OUI_NON_Click() End Sub 'Pour rechercher les infos Private Sub RECHER_Change() Dim l As Integer With Sheets("RECAP") l = .Columns(1).Find(RECHER, , , , xlByColumns, xlNext).Row NUMBDCM = .Range("A" & l).Value DATE_BDCM = .Range("C" & l).Value saisiss = .Range("B" & l).Value numda = .Range("D" & l).Value TC = .Range("E" & l).Value FORM = .Range("F" & l).Value UNITE = .Range("G" & l).Value DAT_ACHT = .Range("H" & l).Value MOIS = .Range("I" & l).Value FACTUR = .Range("AG" & l).Value ENG = .Range("AH" & l).Value OBJET = .Range("J" & l).Value FOURNI = .Range("K" & l).Value MARCHE = .Range("L" & l).Value NUM_CDE = .Range("N" & l).Value NUMFAC = .Range("O" & l).Value CPV = .Range("T" & l).Value COUT = .Range("V" & l).Value CF = .Range("AA" & l).Value DF = .Range("AB" & l).Value OBS = .Range("AI" & l).Value DATE_DP = .Range("AJ" & l).Value NUM_DP = .Range("AK" & l).Value AEC = .Range("AL" & l).Value DATE_CP = .Range("AM" & l).Value CPC = .Range("AN" & l).Value WFAE = .Range("AO" & l).Value LG = .Range("W" & l).Value 'PCE = .Range("R" & l).Value 'LIBCPV = .Range("U" & l).Value 'LIBPCE = .Range("S" & l).Value 'GM = .Range("P" & l).Value 'LIBGM = .Range("Q" & l).Value 'NUMCA = .Range("AD" & l).Value 'NOMCA = .Range("AF" & l).Value 'Porteur = .Range("AE" & l).Value 'TYP_DEP = .Range("it" & l).Value End With ' Cache bouton nouvelle entrée (évite fausse manip enregistrement 2 fois mm commande) ' Rend visible le bouton modifs NVLLECMMDE.Visible = False MODIFS.Visible = True End Sub ' Format de certaines cellules Private Sub userform_activate() Me.DATE_BDCM = Format(Date, "dd mmmm yyyy") Me.FACTUR = Format("0,00") Me.ENG = Format("0,00") ' par defaut rend visible le bouton nouvelle commande et invisible le bouton modifs NVLLECMMDE.Visible = True MODIFS.Visible = False nouveau_num End Sub Private Sub nouveau_num() Dim Ligne As Long 'numero de la 1ere commande premnum = 1 ' à modifier si nécessaire 'première ligne vide en colonne A de RegFactures Ligne = Sheets("RECAP").Columns(1).Find("*", , , , xlByColumns, xlPrevious).Row + 1 a = Sheets("RECAP").Range("A" & Ligne - 1).Value ' si cette valeur est le titre le n° sera celui indiqué dans la variable premnum (debut sub) sinon dernier n° + 1 (recuperation de la valeur des 5 derniers caractères à droite du dernier n°) If a = "N°" Then numc = premnum Else numc = Val(Right(a, 5)) + 1 ' composition de la fin du n° enregistrement avec 4 chiffres dont 0 au début (repete 0 autant de fois que 5 moins la longueur de numc) ndc = WorksheetFunction.Rept("0", 5 - Len(numc)) & numc NUMBDCM = ndc End Sub Private Sub WFAE_Change() End Sub
steph575
Messages postés
42
Date d'inscription
vendredi 23 juin 2017
Statut
Membre
Dernière intervention
23 janvier 2019
31 août 2018 à 11:09
31 août 2018 à 11:09
jordane45
Messages postés
38346
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 décembre 2024
4 717
31 août 2018 à 11:10
31 août 2018 à 11:10
Regarde comment se code l'utilisation de la méthode find
https://forums.commentcamarche.net/forum/affich-37621992-methode-find-dans-vba-recherche-de-donnees-sous-excel
https://forums.commentcamarche.net/forum/affich-37621992-methode-find-dans-vba-recherche-de-donnees-sous-excel
steph575
Messages postés
42
Date d'inscription
vendredi 23 juin 2017
Statut
Membre
Dernière intervention
23 janvier 2019
Modifié le 31 août 2018 à 11:39
Modifié le 31 août 2018 à 11:39
En effet, mais dans l'exemple, comment remplacer le mot "trouver" par un numéro de ligne vu que ça va de 1 à 8000 ?
Je te remercie vraiment pour ton aide.
Je te remercie vraiment pour ton aide.
Option Explicit Sub Cherche() 'déclaration des variables : Dim Trouve As Range, PlageDeRecherche As Range Dim Valeur_Cherchee As String, AdresseTrouvee As String '********* à adapter *********** 'affectation de valeurs aux variables : 'on cherche le mot "Trouve" Valeur_Cherchee = "Trouve" 'dans la première colonne de la feuille active Set PlageDeRecherche = ActiveSheet.Columns(1) '******************************* 'méthode find, ici on cherche la valeur exacte (LookAt:=xlWhole) Set Trouve = PlageDeRecherche.Cells.Find(what:=Valeur_Cherchee, LookAt:=xlWhole) 'traitement de l'erreur possible : Si on ne trouve rien : If Trouve Is Nothing Then 'ici, traitement pour le cas où la valeur n'est pas trouvée AdresseTrouvee = Valeur_Cherchee & " n'est pas présent dans " & PlageDeRecherche.Address Else 'ici, traitement pour le cas où la valeur est trouvée AdresseTrouvee = Trouve.Address End If MsgBox AdresseTrouvee 'vidage des variables Set PlageDeRecherche = Nothing Set Trouve = Nothing End Sub
jordane45
Messages postés
38346
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 décembre 2024
4 717
>
steph575
Messages postés
42
Date d'inscription
vendredi 23 juin 2017
Statut
Membre
Dernière intervention
23 janvier 2019
31 août 2018 à 11:56
31 août 2018 à 11:56
le mot "trouver"
????
Quel mot ? A quelle ligne ?
Sachant que ce qui sert dans ce code c'est surtout
'méthode find, ici on cherche la valeur exacte (LookAt:=xlWhole) Set Trouve = PlageDeRecherche.Cells.Find(what:=Valeur_Cherchee, LookAt:=xlWhole) 'traitement de l'erreur possible : Si on ne trouve rien : If Trouve Is Nothing Then 'ici, traitement pour le cas où la valeur n'est pas trouvée AdresseTrouvee = Valeur_Cherchee & " n'est pas présent dans " & PlageDeRecherche.Address Else 'ici, traitement pour le cas où la valeur est trouvée AdresseTrouvee = Trouve.Address End If
Et pour le résultat... tu peux utiliser l'une des lignes suivantes :
AdresseTrouvee = Trouve.Address ' adresse complète ligne ET colonne AdresseTrouvee= Trouve.Rows 'Numéro de ligne AdresseTrouvee= Trouve.Columns ' Numéro de colonne
steph575
Messages postés
42
Date d'inscription
vendredi 23 juin 2017
Statut
Membre
Dernière intervention
23 janvier 2019
Modifié le 4 sept. 2018 à 11:01
Modifié le 4 sept. 2018 à 11:01
Peux tu me dire si cette-fois c'est juste ?
'Pour rechercher les infos Private Sub RECHER_Change() Dim l As Integer With Sheets("RECAP") 'l = .Columns(1).Find(RECHER, , , , xlByColumns, xlNext).Row SetTrouve = .Columns(1).Cells.Find(What:=RECHER, looKat:=xlWhole) 'Traitement de l'erreur possible. Si on ne trouve rien : If Trouve Is Nothing Then 'Ici traitement pour le cas où la valeur n'est pas trouvée Dim Trouve As Range Else 'Ici traitement si la valeur est trouvée. l = Trouve.Row End If
jordane45
Messages postés
38346
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 décembre 2024
4 717
4 sept. 2018 à 11:01
4 sept. 2018 à 11:01
.... et ... tu en as fait quoi de ce que je t'ai indiqué ?
NB: Je corrige ton message pour remettre correctement les balises de code... Merci de faire attention à l'avenir.
Dim Trouve As Range
NB: Je corrige ton message pour remettre correctement les balises de code... Merci de faire attention à l'avenir.
jordane45
Messages postés
38346
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 décembre 2024
4 717
>
jordane45
Messages postés
38346
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 décembre 2024
4 sept. 2018 à 11:02
4 sept. 2018 à 11:02
EDIT... tu l'as mis... mais pas au bon endroit....
Une déclaration de variable... ça se place AVANT de l'utiliser ! (et dans l'idéal.. au début de ton code )
Une déclaration de variable... ça se place AVANT de l'utiliser ! (et dans l'idéal.. au début de ton code )
steph575
Messages postés
42
Date d'inscription
vendredi 23 juin 2017
Statut
Membre
Dernière intervention
23 janvier 2019
>
jordane45
Messages postés
38346
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 décembre 2024
Modifié le 5 sept. 2018 à 09:32
Modifié le 5 sept. 2018 à 09:32
Voilà ce que j'ai écrit.
Malheureusement cela ne fonctionne toujours pas,je ne parviens même plus à faire une recherche.
Merci pour ton aide.
Private Sub RECHER_Change () Dim Trouve As Range With Sheets ("RECAP") Set Trouve =.Columns(1).Cells.Fond(What:=RECHER,looKat:=xlWole) If Trouve Is Nothing Then Else l=Trouve.Row End If
Malheureusement cela ne fonctionne toujours pas,je ne parviens même plus à faire une recherche.
Merci pour ton aide.
f894009
Messages postés
17206
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
22 novembre 2024
1 711
Modifié le 4 sept. 2018 à 16:22
Modifié le 4 sept. 2018 à 16:22
Bonjour a tous et a toutes
steph575
Set Trouve =.Columns(1).Cells.Fond(What:=RECHER,looKat:=xlWole)
mieux comme ca:
En fin de compte ce que Jordane45 vous avait ecrit.....................................
steph575
Set Trouve =.Columns(1).Cells.Fond(What:=RECHER,looKat:=xlWole)
mieux comme ca:
Set Trouve = .Columns(1).Cells.Find(RECHER, , xlValues, xlWhole)
En fin de compte ce que Jordane45 vous avait ecrit.....................................
steph575
Messages postés
42
Date d'inscription
vendredi 23 juin 2017
Statut
Membre
Dernière intervention
23 janvier 2019
Modifié le 5 sept. 2018 à 09:18
Modifié le 5 sept. 2018 à 09:18
Bon j'ai suivi vos conseils et voici mon codage.
Malheureusement, si je tape un numéro inexistant en effet le message d'erreur ne s'affiche plus, mais si je tape un numéro existant, rien ne se passe. Je ne peux donc plus rien modifier.
'Pour rechercher les infos Private Sub Trouve() Dim Trouve As Range If Trouve Is Nothing Then Else l = Trouve.Row End If SetTrouve = .Columns(1).Cells.Find(RECHER, , xlValues, xlWhole) NUMBDCM = .Range("A" & l).Value DATE_BDCM = .Range("C" & l).Value saisiss = .Range("B" & l).Value numda = .Range("D" & l).Value TC = .Range("E" & l).Value FORM = .Range("F" & l).Value UNITE = .Range("G" & l).Value DAT_ACHT = .Range("H" & l).Value MOIS = .Range("I" & l).Value FACTUR = .Range("AG" & l).Value ENG = .Range("AH" & l).Value OBJET = .Range("J" & l).Value FOURNI = .Range("K" & l).Value MARCHE = .Range("L" & l).Value NUM_CDE = .Range("N" & l).Value NUMFAC = .Range("O" & l).Value NUMCPV = .Range("T" & l).Value COUT = .Range("V" & l).Value CF = .Range("AA" & l).Value DF = .Range("AB" & l).Value OBS = .Range("AI" & l).Value DATE_DP = .Range("AJ" & l).Value NUM_DP = .Range("AK" & l).Value AEC = .Range("AL" & l).Value DATE_CP = .Range("AM" & l).Value CPC = .Range("AN" & l).Value WFAE = .Range("AO" & l).Value LG = .Range("W" & l).Value PCE = .Range("R" & l).Value LIBCPV = .Range("U" & l).Value LIBPCE = .Range("S" & l).Value GM = .Range("P" & l).Value LIBGM = .Range("Q" & l).Value NUMCA = .Range("AD" & l).Value NOMCA = .Range("AF" & l).Value Porteur = .Range("AE" & l).Value TYP_DEP = .Range("it" & l).Value ' Cache bouton nouvelle entrée (évite fausse manip enregistrement 2 fois mm commande) ' Rend visible le bouton modifs NVLLECMMDE.Visible = False MODIFS.Visible = True End Sub
Malheureusement, si je tape un numéro inexistant en effet le message d'erreur ne s'affiche plus, mais si je tape un numéro existant, rien ne se passe. Je ne peux donc plus rien modifier.
f894009
Messages postés
17206
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
22 novembre 2024
1 711
Modifié le 5 sept. 2018 à 09:25
Modifié le 5 sept. 2018 à 09:25
Bonjour,
Avec ce que vous avez ecrit, m'etonnerai que vous n'ayez pas de msg d'erreur sur numero pas trouve
Comment ce fait-il que ca marche chez moi et pas chez vous
Sur numero existe, mettez un point d'arret sur la ligne Set trouve et passez le curseur souris sur le l et RECHER pour voir leur contenu
Et si marche toujours pas , mettez votre fichier a dispo sans donnees confidentielles, mais des donness quand meme.
Je viens de voir l'énormité dans votre code!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Faudrait peut-etre mettre le set trouve avant le test is nothing non!!!!!!!!!!!!!!!!!!!!!!!!
Et changer le code du test par
l = Trouve.Row
....
....
Avec ce que vous avez ecrit, m'etonnerai que vous n'ayez pas de msg d'erreur sur numero pas trouve
If Trouve Is Nothing Then 'ici y a pas de exit sub donc erreur Else l = Trouve.Row End If
Comment ce fait-il que ca marche chez moi et pas chez vous
Sur numero existe, mettez un point d'arret sur la ligne Set trouve et passez le curseur souris sur le l et RECHER pour voir leur contenu
Et si marche toujours pas , mettez votre fichier a dispo sans donnees confidentielles, mais des donness quand meme.
Je viens de voir l'énormité dans votre code!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Faudrait peut-etre mettre le set trouve avant le test is nothing non!!!!!!!!!!!!!!!!!!!!!!!!
Et changer le code du test par
If Trouve Is Nothing Then exit sub End If
l = Trouve.Row
....
....
steph575
Messages postés
42
Date d'inscription
vendredi 23 juin 2017
Statut
Membre
Dernière intervention
23 janvier 2019
>
f894009
Messages postés
17206
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
22 novembre 2024
5 sept. 2018 à 09:59
5 sept. 2018 à 09:59
Ça ne marche pas plus... Comment mettre mon fichier à disposition.
jordane45
Messages postés
38346
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 décembre 2024
4 717
5 sept. 2018 à 09:19
5 sept. 2018 à 09:19
Bonjour,
Tu as oublié un espace après le set :
Tu as oublié un espace après le set :
SetTrouve = .Columns(1).Cells.Find(RECHER, , xlValues, xlWhole)
Set Trouve = .Columns(1).Cells.Find(RECHER, , xlValues, xlWhole)
f894009
Messages postés
17206
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
22 novembre 2024
1 711
5 sept. 2018 à 09:28
5 sept. 2018 à 09:28
Bonjour jordane45,
Ok, mais le test pas au bon endroit c'est pas mal non plus!!!!
Ok, mais le test pas au bon endroit c'est pas mal non plus!!!!
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
steph575
Messages postés
42
Date d'inscription
vendredi 23 juin 2017
Statut
Membre
Dernière intervention
23 janvier 2019
5 sept. 2018 à 10:23
5 sept. 2018 à 10:23
Vous trouverez ici mon fichier.
https://www.cjoint.com/c/HIfiw2TyLCo
Encore merci pour votre aide !
https://www.cjoint.com/c/HIfiw2TyLCo
Encore merci pour votre aide !
f894009
Messages postés
17206
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
22 novembre 2024
1 711
Modifié le 5 sept. 2018 à 11:29
Modifié le 5 sept. 2018 à 11:29
Re,
Je regarde la chose.
Y a quand meme kake chose de curieux dans votre code, private sub trouve est lance comment et en plus ne correspond pas a l'image que vous avez mis au depart et le code sur cette image ne correspond pas a celui de votre fichier!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Autre anomalie l'userform2 (image) n'est jamais lancee!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Autre chose, sub Trouve et dim Trouve as range ca colle pas
Alors ou est-ce que ca coince, dans les procedures RECHER_Change ou ??????????????????????????????
Je regarde la chose.
Y a quand meme kake chose de curieux dans votre code, private sub trouve est lance comment et en plus ne correspond pas a l'image que vous avez mis au depart et le code sur cette image ne correspond pas a celui de votre fichier!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Autre anomalie l'userform2 (image) n'est jamais lancee!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Autre chose, sub Trouve et dim Trouve as range ca colle pas
Alors ou est-ce que ca coince, dans les procedures RECHER_Change ou ??????????????????????????????
jordane45
Messages postés
38346
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 décembre 2024
4 717
5 sept. 2018 à 11:53
5 sept. 2018 à 11:53
Sans oublier qu'il n'y a plus le feuille d'indiquée dans la sub
Que le
est pas au bon endroit... (il est juste avant le else.... Oo ) Il devrait se trouver après le else....
Que la sub Trouve n'est jamais apellée.... ou alors je n'ai pas trouvé où ni par quoi
Et puis.. pourquoi en avoir fait un PRIVATE SUB ?
Pourquoi ne pas simplement avoir remplacé ton code de départ par les quelques lignes que je t'ai donné au lieu de vouloir utiliser (bêtement) la SUB fourni dans l'exemple du lien que je t'ai donné ????
Il ne suffit pas de copier/coller du code n'importe comment... il faut essayer de le comprendre !
Il faut aussi se relire pour éviter des anneries de END IF mal placés ...des variables non déclarées ....
De plus.. dire qu'un code ne "marche pas" ... ce n'est pas suffisant .
Le VBA a pour avantage de t'indiquer la ligne qui cloche... et tu disposes de différents moyents pour essayer de comprendre le souci... tel que les points d'arrêts et le mode pas à pas.
As tu un minimum de connaissances en programmation ?
Avant de continuer, prend une grande respiration.... et prend le temps de réflechir à ce que tu souhaites exactement réaliser (les étapes à suivre)....
(en gros :
Dans ma sub toto
A la ligne ...
Je veux chercher dans la feuille "machin" la valeur provenant de ma variable "bidule".
Si la recherche a trouvée quelque chose..; alors...
Sinon....
)
Une fois ce travail réalisé, tu devrais être en mesure d'utiliser les bouts de code qu'il te faut.
With Sheets("RECAP")
Que le
end if
est pas au bon endroit... (il est juste avant le else.... Oo ) Il devrait se trouver après le else....
Que la sub Trouve n'est jamais apellée.... ou alors je n'ai pas trouvé où ni par quoi
Et puis.. pourquoi en avoir fait un PRIVATE SUB ?
Pourquoi ne pas simplement avoir remplacé ton code de départ par les quelques lignes que je t'ai donné au lieu de vouloir utiliser (bêtement) la SUB fourni dans l'exemple du lien que je t'ai donné ????
Il ne suffit pas de copier/coller du code n'importe comment... il faut essayer de le comprendre !
Il faut aussi se relire pour éviter des anneries de END IF mal placés ...des variables non déclarées ....
De plus.. dire qu'un code ne "marche pas" ... ce n'est pas suffisant .
Le VBA a pour avantage de t'indiquer la ligne qui cloche... et tu disposes de différents moyents pour essayer de comprendre le souci... tel que les points d'arrêts et le mode pas à pas.
As tu un minimum de connaissances en programmation ?
Avant de continuer, prend une grande respiration.... et prend le temps de réflechir à ce que tu souhaites exactement réaliser (les étapes à suivre)....
(en gros :
Dans ma sub toto
A la ligne ...
Je veux chercher dans la feuille "machin" la valeur provenant de ma variable "bidule".
Si la recherche a trouvée quelque chose..; alors...
Sinon....
)
Une fois ce travail réalisé, tu devrais être en mesure d'utiliser les bouts de code qu'il te faut.
steph575
Messages postés
42
Date d'inscription
vendredi 23 juin 2017
Statut
Membre
Dernière intervention
23 janvier 2019
5 sept. 2018 à 14:52
5 sept. 2018 à 14:52
Je te remercie, je n'ai aucune connaissance en programmation et je le regrette.
C'est grâce à des exemples que j'en suis arrivé à faire cela.
C'est grâce à des exemples que j'en suis arrivé à faire cela.
f894009
Messages postés
17206
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
22 novembre 2024
1 711
5 sept. 2018 à 15:52
5 sept. 2018 à 15:52
Re,
je n'ai aucune connaissance
Beau travail quand meme
Il ne faut pas grand chose pour que ca marche, du moins pour le sujet qui nous interesse, dites seulement quelle(s) Useform vous utilisez. J'ai ma petite idee, mais demande confirmation
je n'ai aucune connaissance
Beau travail quand meme
Il ne faut pas grand chose pour que ca marche, du moins pour le sujet qui nous interesse, dites seulement quelle(s) Useform vous utilisez. J'ai ma petite idee, mais demande confirmation
steph575
Messages postés
42
Date d'inscription
vendredi 23 juin 2017
Statut
Membre
Dernière intervention
23 janvier 2019
5 sept. 2018 à 16:21
5 sept. 2018 à 16:21
Ma question se pose pour Userform1.
(pour l'UserForm3 je reprendrai ta proposition)
(pour l'UserForm3 je reprendrai ta proposition)
f894009
Messages postés
17206
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
22 novembre 2024
1 711
5 sept. 2018 à 16:28
5 sept. 2018 à 16:28
Re,
Ok, je suis dessus et recherche SAF ok, je n'ai pas teste plus loin, a vous de dire . Juste une question, pourquoi une combobox pour recherche n° SAF
J'ai fait petite modif pour RAZ des champs saisie et infos dans cadre Information
https://mon-partage.fr/f/5zZLZfBo/
Ok, je suis dessus et recherche SAF ok, je n'ai pas teste plus loin, a vous de dire . Juste une question, pourquoi une combobox pour recherche n° SAF
J'ai fait petite modif pour RAZ des champs saisie et infos dans cadre Information
https://mon-partage.fr/f/5zZLZfBo/
steph575
Messages postés
42
Date d'inscription
vendredi 23 juin 2017
Statut
Membre
Dernière intervention
23 janvier 2019
>
f894009
Messages postés
17206
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
22 novembre 2024
5 sept. 2018 à 16:36
5 sept. 2018 à 16:36
Car au départ j'avais envisagé un menu déroulant, que j'ai laissé tombé vu qu'en fin d'année j'aurai prés de 7500 enregistrements.
f894009
Messages postés
17206
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
22 novembre 2024
1 711
5 sept. 2018 à 16:42
5 sept. 2018 à 16:42
Re,
Vous avez recupere le fichier que j'ai modifie??
Vous avez recupere le fichier que j'ai modifie??
steph575
Messages postés
42
Date d'inscription
vendredi 23 juin 2017
Statut
Membre
Dernière intervention
23 janvier 2019
11 oct. 2018 à 10:07
11 oct. 2018 à 10:07
Je reviens vers vous car je rencontre à nouveau un soucis, et n'ai pas trouvé de solution au problème.
Je m'explique.
Mon UserForm, renvoi dans mon "Récap_N1" les montant HT et TTC sous format "texte", ce qui a pour conséquence que mes formules dans mon onglet "Computation des seuils N1" ne fonctionnent pas.
Qui peux m'expliquer où est l'erreur dans ma programmation VBA
Merci d'avance.
Mon fichier : https://mon-partage.fr/f/a9c5wg0q/
Je m'explique.
Mon UserForm, renvoi dans mon "Récap_N1" les montant HT et TTC sous format "texte", ce qui a pour conséquence que mes formules dans mon onglet "Computation des seuils N1" ne fonctionnent pas.
Qui peux m'expliquer où est l'erreur dans ma programmation VBA
Merci d'avance.
Mon fichier : https://mon-partage.fr/f/a9c5wg0q/
steph575
Messages postés
42
Date d'inscription
vendredi 23 juin 2017
Statut
Membre
Dernière intervention
23 janvier 2019
8 nov. 2018 à 09:29
8 nov. 2018 à 09:29
Bonjour.
Hé oui j'ai encore un soucis, je souhaiterai intégrer dans la numérotation automatique un préfixe afin qu'elle apparaisse dans mon userForm comme ceci : N1 - 00001
Voici mon code, que dois-je modifier pour intégrer mon préfixe.
Hé oui j'ai encore un soucis, je souhaiterai intégrer dans la numérotation automatique un préfixe afin qu'elle apparaisse dans mon userForm comme ceci : N1 - 00001
Voici mon code, que dois-je modifier pour intégrer mon préfixe.
Private Sub nouveau_num()
Dim Ligne As Long
'numero de la 1ere commande
premnum = 1 'à modifier si nécessaire
Ligne = Sheets("Recap_N1").Columns(1).Find("*", , , , xlByColumns, xlPrevious).Row + 1
a = Sheets("Recap_N1").Range("A" & Ligne - 1).Value
If a = "N°" Then numc = premnum Else numc = Val(Right(a, 5)) + 1
ndc = WorksheetFunction.Rept("0", 5 - Len(numc)) & numc
NUM_SAF = ndc
f894009
Messages postés
17206
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
22 novembre 2024
1 711
Modifié le 8 nov. 2018 à 10:27
Modifié le 8 nov. 2018 à 10:27
Bonjour,
dans mon userForm comme ceci : N1 - 00001
Pas dans la feuille excel et que sur nouveau???
dans mon userForm comme ceci : N1 - 00001
Pas dans la feuille excel et que sur nouveau???
steph575
Messages postés
42
Date d'inscription
vendredi 23 juin 2017
Statut
Membre
Dernière intervention
23 janvier 2019
8 nov. 2018 à 10:28
8 nov. 2018 à 10:28
Dans mon userform, et qu'il apparaisse de la même façon sur ma feuille excel.
f894009
Messages postés
17206
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
22 novembre 2024
1 711
8 nov. 2018 à 10:34
8 nov. 2018 à 10:34
Re, Ok
Colonnes G/H texte ald Numerique tout a fai normal vu le code
modif:
Je regarde pour le "N°". je suppose qu'il faut l'ajouter a toutes les lignes avant de faire modif ou ajout car pas possible pour recherche!!!
Colonnes G/H texte ald Numerique tout a fai normal vu le code
modif:
.Range("G" & l).Value = Format(CDbl(HT1), "0,00") .Range("H" & l).Value = Format(CDbl(TTC1), "0,00")
Je regarde pour le "N°". je suppose qu'il faut l'ajouter a toutes les lignes avant de faire modif ou ajout car pas possible pour recherche!!!
f894009
Messages postés
17206
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
22 novembre 2024
1 711
8 nov. 2018 à 10:51
8 nov. 2018 à 10:51
Re,
Fichier modifie: https://mon-partage.fr/f/bs9Ljm9p/
Dans module MTest un code pour ajouter "N°_ " au enregistrement existants, boucle a modifie pour la fin des enregistrement
Fichier modifie: https://mon-partage.fr/f/bs9Ljm9p/
Dans module MTest un code pour ajouter "N°_ " au enregistrement existants, boucle a modifie pour la fin des enregistrement
steph575
Messages postés
42
Date d'inscription
vendredi 23 juin 2017
Statut
Membre
Dernière intervention
23 janvier 2019
8 nov. 2018 à 11:54
8 nov. 2018 à 11:54
Génial, c'est exactement ce que je souhaitais.
Une autre question.
Actuellement mes UserForm, renvoient les données dans deux feuilles séparées (Recap_N1 et Recap_N3), est t'il possible en plus d'envoyer ces données dans une troisième feuilles, mais qui celle-la reprendrai l'ensemble de toutes les données. Je ne sais pas si je me fais bien comprendre...
Une autre question.
Actuellement mes UserForm, renvoient les données dans deux feuilles séparées (Recap_N1 et Recap_N3), est t'il possible en plus d'envoyer ces données dans une troisième feuilles, mais qui celle-la reprendrai l'ensemble de toutes les données. Je ne sais pas si je me fais bien comprendre...
steph575
Messages postés
42
Date d'inscription
vendredi 23 juin 2017
Statut
Membre
Dernière intervention
23 janvier 2019
12 nov. 2018 à 16:46
12 nov. 2018 à 16:46
La modif peux rester je pense sur des feuilles d'origines, c'est surtout la copie qui m'intéresse beaucoup.
f894009
Messages postés
17206
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
22 novembre 2024
1 711
12 nov. 2018 à 16:53
12 nov. 2018 à 16:53
Re,
La modif peux rester
Ben facile a faire, inclure la copie sur les deux boutons. Mais si la partie origine vous va OK...
La modif peux rester
Ben facile a faire, inclure la copie sur les deux boutons. Mais si la partie origine vous va OK...
steph575
Messages postés
42
Date d'inscription
vendredi 23 juin 2017
Statut
Membre
Dernière intervention
23 janvier 2019
12 nov. 2018 à 16:58
12 nov. 2018 à 16:58
oui mais dans ce cas il ne faut pas que les deux userform soient identiques ?
perso j'ai essayé de reporter un code, mais je n'arrive à aucun résultat.
perso j'ai essayé de reporter un code, mais je n'arrive à aucun résultat.
f894009
Messages postés
17206
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
22 novembre 2024
1 711
12 nov. 2018 à 17:15
12 nov. 2018 à 17:15
Re,
oui mais dans ce cas il ne faut pas que les deux userform soient identiques ?
Plait-il??
oui mais dans ce cas il ne faut pas que les deux userform soient identiques ?
Plait-il??
steph575
Messages postés
42
Date d'inscription
vendredi 23 juin 2017
Statut
Membre
Dernière intervention
23 janvier 2019
12 nov. 2018 à 17:33
12 nov. 2018 à 17:33
Je t'explique, j'ai un UserForm pour les dépenses en N1 et un pour les dépenses en N3
Mais deux récaps sont différents, car les formules excel à l'intérieur sont elles aussi différentes.
C'est pour cela que je suis bloqué et que j'ai cherché à réunir les deux tableaux via une macro.
Ci-joint le lien pour mon dernier fichier. https://mon-partage.fr/f/uEnNFcNM/
Mais deux récaps sont différents, car les formules excel à l'intérieur sont elles aussi différentes.
C'est pour cela que je suis bloqué et que j'ai cherché à réunir les deux tableaux via une macro.
Ci-joint le lien pour mon dernier fichier. https://mon-partage.fr/f/uEnNFcNM/
f894009
Messages postés
17206
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
22 novembre 2024
1 711
12 nov. 2018 à 17:56
12 nov. 2018 à 17:56
Re,
Si les modif d'enregistrement ne sont pas prise en compte, faites une copie valeur comme ca pas de probleme avec les formules!!!!
Si les modif d'enregistrement ne sont pas prise en compte, faites une copie valeur comme ca pas de probleme avec les formules!!!!
steph575
Messages postés
42
Date d'inscription
vendredi 23 juin 2017
Statut
Membre
Dernière intervention
23 janvier 2019
12 nov. 2018 à 17:58
12 nov. 2018 à 17:58
une copie valeur ?
f894009
Messages postés
17206
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
22 novembre 2024
1 711
13 nov. 2018 à 07:05
13 nov. 2018 à 07:05
Bonjour,
Vous dites que vous avez des problèmes avec les formules, une copie valeur enlevé les formule et vous conservez la valeur de la formule
Vous dites que vous avez des problèmes avec les formules, une copie valeur enlevé les formule et vous conservez la valeur de la formule
11 oct. 2018 à 18:40
convertir en nombre les infos textbox's pour modif et nouvelle