|
Anniversaire |
|
Invité
|
Bonjour à toutes et tous
Bon anniversaire cher admin
Eric
Date de publication : 21/11/2018 08:58
|
|
|
Re : Fichier très long à charger |
|
Invité
|
Bonsoir à toutes et tous Il y a deux petites choses : Tout d'abord, dans la ligne :
Set sh2 = Worksheets("Feuil2") 'a = 20 a = 18 + ActiveCell.Row
il faut supprimer :
a = 18 + ActiveCell.Row
et copier cette ligne dessous, comme ceci :
Set sh2 = Worksheets("Feuil2")
a = 18 + ActiveCell.Row
Puis, inutile de créer un bouton avec un code, il suffit de cliquer sur la cellule (exemple) F2 et la colonne "T2 à Tx" se remplira, et ainsi de suite : "F3" pour "U2 à Ux"...... Cela est pour les lignes "Ax à Ex" futures. Si, tu as déjà saisis des nombres dans les lignes 1, 2, 3, ..., soit c'est peu de lignes et tu parcours une par une les celulles en colonnes "F" sinon créer une macro qui le fera à ta place jusqu'à la dernière ligne "Ax à Fx" occupée. J'espère avoir été plus clair, dis-nous Eric
Date de publication : 27/01/2018 18:54
|
|
|
Re : Fichier très long à charger |
|
Invité
|
Bonjour à tous Bonjour Je suppose que, quand tu remplis les cellules A2 à E2, les "formules" en cellule "Tx" se calculent, et ainsi de suite : A3:E3 >Ux, ..... Donc, dès que tu seras sur la cellule F2, la macro se déclanchera et remplira les cellules T2 à T13367. Si tu modifies 1 cellule entre Ax:Ex, il te faudra sélectionner la cellule Fx correspondante. A mettre dans un module :
Option Explicit
Public sh1 As Worksheet
Public sh2 As Worksheet
Public sh3 As Worksheet
Sub tirage_001()
Dim i As Integer, j As Integer
Dim a As Long ' colonnes de T à PC
Dim b As Integer ' ligne/A-E Dim valeur As Integer
Set sh1 = Worksheets("Feuil1")
Set sh2 = Worksheets("Feuil2") 'a = 20 a = 18 + ActiveCell.Row
b = ActiveCell.Row
For j = 2 To 15 ' 13367 à saisir a la place de 15
For i = 1 To 5
If IsNumeric(Application.HLookup(sh2.Cells(b, i), sh1.Range("C" & j & ":V" & j), 1, False)) Then valeur = valeur + 1
Next i
sh2.Cells(j, a) = valeur
valeur = 0
Next j
End Sub
A mettre dans ThisWorkbook
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
If ActiveCell.Column = 6 And Application.WorksheetFunction.CountA(Range("A" & ActiveCell.Row & ":E" & ActiveCell.Row)) = 5 Then
tirage_001
End If
End Sub
Bons tests A te lire Frédéric
Date de publication : 22/01/2018 14:43
|
|
|
Re : Fichier très long à charger |
|
Invité
|
Bonjour Juste pour que tu puisses continuer aujourd'hui, "valeur" non définie => ajouter en tête de la sub "Dim valeur As Integer" :
Sub test_ligne_01()
Dim i As Integer
Dim valeur as Integer
For i = 1 To 5
If IsNumeric(Application.HLookup(Cells(2, i), Feuil1.Range("C2:V2"), 1, False)) Then valeur = valeur + 1
Next i
MsgBox valeur
End Sub
Bonne journée Eric
Date de publication : 18/01/2018 08:30
|
|
|
Re : Fichier très long à charger |
|
Invité
|
Bonsoir
Pas trop le temps ce soir, mais je regarderai ton post plus en détail demain (?) Pour la ligne de code, il faut tout mettre, pas seulement ce que tu as recopié, je t'expliquerai la prochaine fois. Dsl, je pars
Bonne soirée A te lire Eric
Date de publication : 17/01/2018 19:21
|
|
|
Re : Fichier très long à charger |
|
Invité
|
Bonsoir
Tu me parles de 5360000 cellules avec formules sur la feuille 2, se sont lesquelles ? Colonnes L à R ? : jusqu'à quelle ligne ? Colonnes T à AB ? : jusqu'à quelle ligne ? Y en a t il dans d'autres colonnes ?
Pour les autres feuilles, on verra plus tard.
Avec le code que je t'ai mis, essaie de continuer pour les colonnes U à AB.
Perso, je continue, mais donne moi un peu plus de billes pour que je puisse t'aider.
A te lire Eric
Date de publication : 17/01/2018 17:51
|
|
|
Re : Fichier très long à charger |
|
Invité
|
Bonsoir Pour commencer, un peu d'aide. Pour la cellule "T2" :
Sub test_ligne_01() Dim i As Integer
For i = 1 To 5
If IsNumeric(Application.HLookup(Cells(2, i), Feuil1.Range("C2:V2"), 1, False)) Then valeur = valeur + 1
Next i
MsgBox valeur
End Sub
si j'ai bien compris A toi de jouer. Dis nous Eric
Date de publication : 16/01/2018 18:31
|
|
|
Re : Fichier très long à charger |
|
Invité
|
Bonjour à tous Bonjour jad73
Tout d'abord, es-tu sur excel 2003 ?
J'ai testé pour 430000 cellules avec des formules, j'arrive à un fichier de plus de 72Mo. Le tien fait combien avec les 4000000 annoncées ?
J'ai testé avec juste des nombres sur plus de 5000000 cellules, le fichier fait 41Mo (quand même) mais s'ouvre pratiquement immédiatement.
Je te propose la solution suivnate : tu supprimes toutes les formules et tu remplaces par du VBA.
A te lire Eric
Date de publication : 16/01/2018 13:31
|
|
|
Re : Fichier très long à charger |
|
Invité
|
Bonsoir
Fais une tentative en le transformant en xls
Eric
Date de publication : 15/01/2018 20:43
|
|
|
Re : Fichier très long à charger |
|
Invité
|
Bonjour à toutes et tous Bonjour jad73
Pourrais tu mettre le "bout" de fichier ?
Eric
Date de publication : 15/01/2018 13:12
|
|
|
Re : nouveau souci macro |
|
Invité
|
Bonjour à Toutes et Tous Bonjour mimi Si j'ai bien compris, tu veux que lorsque l'USF s'ouvre le bouton option 30mn soit coché. Dans "Private Sub UserForm_Initialize()" tu écris :
OptionButton1.Value = True
en modifiant le "OptionButton1" en "OptionButton..." par le nom de celui des 30mn A te lire Eric
Date de publication : 05/01/2018 09:58
|
|
|
Re : Calcul avec des grands nombres sous excel |
|
Invité
|
Bonjour à tous Bonjour chrysaxel Nous sommes tous des bénévoles et, si je peux me permettre, le "votre prompt réaction" ne pousse pas forcément à répondre "promptement" à la demande. Pour ton pb, je te propose ceci :
Option Explicit
Sub lance_test()
Dim multiplicande As Long ' multiplicande'
Dim len_nb_1 As Integer
Dim multiplicateur As Long ' multiplicateur'
Dim len_nb_2 As Integer
Dim Var As Integer
Dim tablo() As Integer
Dim i As Integer, j As Integer
Dim a As Integer, b As Integer, c As Integer, d As Integer, e As Integer
Dim x As Integer, y As Integer, z As Integer
Dim resultat As String
Dim mav_01 As Integer, reste As Integer
multiplicande = 111111111
multiplicateur = 111111111
len_nb_1 = Len(CStr(multiplicande))
len_nb_2 = Len(CStr(multiplicateur))
ReDim tablo(len_nb_1 + len_nb_2 + 1, len_nb_1 + len_nb_2 + 1)
For i = 1 To len_nb_2
Var = 0
a = 0
e = len_nb_1 - i + 1
For j = 1 To len_nb_1 + 1
If j < len_nb_1 + 1 Then
c = c + 1
b = len_nb_1 - a
a = a + 1
tablo(j - 1 + d, i - 1) = Right(Right((Mid(multiplicande, b, 1) * Mid(multiplicateur, e, 1)), 1) + Var, 1)
If Len((Mid(multiplicande, b, 1) * Mid(multiplicateur, e, 1)) + Var) > 1 Then
Var = Left(((Mid(multiplicande, b, 1) * Mid(multiplicateur, e, 1)) + Var), 1)
Else
Var = 0
End If
End If
If j < len_nb_1 And Var > 0 Then
' pour test'
Cells(21 + i, 30 + len_nb_1 - j - d) = tablo(j - 1 + d, i - 1)
Else
' pour test'
Cells(21 + i, 30 + len_nb_1 - j - d) = tablo(j - 1 + d, i - 1)
tablo(j + d, i - 1) = Var
' pour test'
Cells(21 + i, 30 + len_nb_1 - j - 1 - d) = Var
If j = len_nb_1 Then Exit For
End If
Next j
d = d + 1
Next i
For z = 0 To len_nb_1 + len_nb_2 + 1
For x = 0 To len_nb_2 - 1
mav_01 = mav_01 + tablo(z, x)
Next x
mav_01 = mav_01 + reste
reste = 0
If Len(CStr(mav_01)) = 2 Then
resultat = Right(mav_01, 1) & resultat
reste = Left(mav_01, 1)
Else
resultat = mav_01 & resultat
End If
mav_01 = 0
Next z
For y = 1 To Len(resultat)
If Left(resultat, 1) = 0 Then resultat = Mid(resultat, 2) Else Exit For
Next y
' pour test'
MsgBox resultat
' pour test il faut que la cellule soit de format texte'
Range("A1") = CStr(resultat)
End Sub
C'est un peu capilotracté, mais cela fonctionne. Macro QUE pour les entiers Il y a certainement plus simple, mais c'est plus cher A te lire Eric PS : fichier texte du code joint, il y a, à la prévisu, des caractères qui disparaissent
Joindre un fichier:
Lien visibles uniquement pour les utilisateurs enregistrés
Date de publication : 24/05/2016 10:51
|
|
|
Re : macro control cellule en boucle avec une tempo entre chaque boucle |
|
Invité
|
Bonsoir à tous Bonsoir dann J'ai l'impression qu'il a plusieurs questions, je me trompe ? Pour le tempo, voici un code très ancien de Veriland :
Option Explicit
Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Sub essai()
' -----code
' sommeil de 2 secondes
Sleep 2000
' -----suite du code
End Sub
Dis nous Eric
Date de publication : 27/01/2014 22:00
|
|
|
Re : Macro qui ne passe plus en 2010 |
|
Invité
|
Problème avec la jonction de fichier
Nouvel essai
Joindre un fichier:
Lien visibles uniquement pour les utilisateurs enregistrés
Date de publication : 17/12/2013 21:52
|
|
|
Re : Macro qui ne passe plus en 2010 |
|
Invité
|
Bonsoir à tous Bonsoir Cathy Un petit coucou pour te confier un fichier qui, je croie, refonctionne . Tu dis. C'est un vrai plaisir de retrouver les anciens amis. Longue vie à Veriti Bisouxxxx à toi et toute la troupe Eric
Date de publication : 17/12/2013 21:49
|
|
|