Macro excel qui marche plus
Résolu
Qhes
Messages postés
180
Statut
Membre
-
Qhes Messages postés 180 Statut Membre -
Qhes Messages postés 180 Statut Membre -
Bonjour,
J'avais une super macroqui marchait super bien... c'était le bon temps... puis on a changer de version on est passé de 2003 à 2007 et on a même changer klk liens du serveurs ...
Et ma macro dans tout ca.... :$
perdue lessivée et carrement bancale....
Voilà le but de ma macro :
dans une suite de données àdditionner entre elles toutes les céllules de la colonne B ayant les même données à la colonne A et les même données à la colonne C.
Voilà ma macro :
Sub Total()
Application.ScreenUpdating = False
On Error Resume Next
'trouver le dernier enregistrement complet
Dim Ligne As Long
Dim Ligne2 As Long
Ligne = (Range("A1").End(xlDown).Row + 1)
'remplacement des #N/A
Cells.Replace What:="#N/A", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
o = "A" & Ligne
p = "C" & 65536
q = o & ":" & p
Range(q).Select
Selection.ClearContents
'suppression des blancs
Range("E1").Select
ActiveCell.FormulaR1C1 = "=COUNTIF(RC[-2]:R[" & Ligne - 1 & "]C[-2],"""")"
b = ActiveCell.Value
For h = 2 To Ligne - 1 - b
Cells(h, 3).Select
If ActiveCell.Value = "" Then
Rows(h).Delete
h = h - 1
End If
Next h
Range("E1").Select
Selection.Clear
'création des sous-totaux
Range("D2").Select
ActiveCell.FormulaR1C1 = "=CONCATENATE(RC[-3],RC[-1])"
Selection.AutoFill Destination:=Range("D2:D" & Ligne - 1), Type:=xlFillDefault
Range("A1:D" & Ligne - 1).Select
Selection.Subtotal GroupBy:=4, Function:=xlSum, TotalList:=Array(2), _
Replace:=True, PageBreaks:=False, SummaryBelowData:=False
Columns(4).ClearContents
'ajout des infos opérateur et matière
Ligne2 = (Range("B1").End(xlDown).Row + 1)
For i = 2 To Ligne2
Cells(i + 1, 1).Select
If ActiveCell.Value <> "" Then
Cells(i, 1).Value = Cells(i + 1, 1).Value
Cells(i, 3).Value = Cells(i + 1, 3).Value
End If
Next i
'copie sur une nouvelle feuille
ActiveSheet.Outline.ShowLevels RowLevels:=2
Range("A1").Select
Selection.SpecialCells(xlCellTypeVisible).Copy
Sheets.Add
ActiveSheet.Name = "Total"
Sheets("Total").Move after:=Sheets("Excel")
Sheets("Excel").Select
Range("A3:C" & Ligne2 - 1).Select
Selection.SpecialCells(xlCellTypeVisible).Copy
Sheets("Total").Select
Range("A2").Select
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
Sheets("Excel").Select
Range("A1:C1").Select
Selection.Copy
Sheets("Total").Select
Range("A1").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Range("A1").Select
Sheets("Excel").Select
ActiveSheet.Shapes("Button 1").Select
Selection.Copy
Sheets("Total").Select
Range("F1").Select
ActiveSheet.Paste
Application.DisplayAlerts = False
Sheets("Excel").Delete
Application.DisplayAlerts = True
Sheets("Total").Select
ActiveSheet.Name = "Excel"
Range("A1").Select
Application.ScreenUpdating = True
End Sub
Voila mon fichier :
http://www.cijoint.fr/cjlink.php?file=cj201012/cijHksrQYK.xls
S'il vous plai aidez moi...
Merci d'avance
J'avais une super macroqui marchait super bien... c'était le bon temps... puis on a changer de version on est passé de 2003 à 2007 et on a même changer klk liens du serveurs ...
Et ma macro dans tout ca.... :$
perdue lessivée et carrement bancale....
Voilà le but de ma macro :
dans une suite de données àdditionner entre elles toutes les céllules de la colonne B ayant les même données à la colonne A et les même données à la colonne C.
Voilà ma macro :
Sub Total()
Application.ScreenUpdating = False
On Error Resume Next
'trouver le dernier enregistrement complet
Dim Ligne As Long
Dim Ligne2 As Long
Ligne = (Range("A1").End(xlDown).Row + 1)
'remplacement des #N/A
Cells.Replace What:="#N/A", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
o = "A" & Ligne
p = "C" & 65536
q = o & ":" & p
Range(q).Select
Selection.ClearContents
'suppression des blancs
Range("E1").Select
ActiveCell.FormulaR1C1 = "=COUNTIF(RC[-2]:R[" & Ligne - 1 & "]C[-2],"""")"
b = ActiveCell.Value
For h = 2 To Ligne - 1 - b
Cells(h, 3).Select
If ActiveCell.Value = "" Then
Rows(h).Delete
h = h - 1
End If
Next h
Range("E1").Select
Selection.Clear
'création des sous-totaux
Range("D2").Select
ActiveCell.FormulaR1C1 = "=CONCATENATE(RC[-3],RC[-1])"
Selection.AutoFill Destination:=Range("D2:D" & Ligne - 1), Type:=xlFillDefault
Range("A1:D" & Ligne - 1).Select
Selection.Subtotal GroupBy:=4, Function:=xlSum, TotalList:=Array(2), _
Replace:=True, PageBreaks:=False, SummaryBelowData:=False
Columns(4).ClearContents
'ajout des infos opérateur et matière
Ligne2 = (Range("B1").End(xlDown).Row + 1)
For i = 2 To Ligne2
Cells(i + 1, 1).Select
If ActiveCell.Value <> "" Then
Cells(i, 1).Value = Cells(i + 1, 1).Value
Cells(i, 3).Value = Cells(i + 1, 3).Value
End If
Next i
'copie sur une nouvelle feuille
ActiveSheet.Outline.ShowLevels RowLevels:=2
Range("A1").Select
Selection.SpecialCells(xlCellTypeVisible).Copy
Sheets.Add
ActiveSheet.Name = "Total"
Sheets("Total").Move after:=Sheets("Excel")
Sheets("Excel").Select
Range("A3:C" & Ligne2 - 1).Select
Selection.SpecialCells(xlCellTypeVisible).Copy
Sheets("Total").Select
Range("A2").Select
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
Sheets("Excel").Select
Range("A1:C1").Select
Selection.Copy
Sheets("Total").Select
Range("A1").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Range("A1").Select
Sheets("Excel").Select
ActiveSheet.Shapes("Button 1").Select
Selection.Copy
Sheets("Total").Select
Range("F1").Select
ActiveSheet.Paste
Application.DisplayAlerts = False
Sheets("Excel").Delete
Application.DisplayAlerts = True
Sheets("Total").Select
ActiveSheet.Name = "Excel"
Range("A1").Select
Application.ScreenUpdating = True
End Sub
Voila mon fichier :
http://www.cijoint.fr/cjlink.php?file=cj201012/cijHksrQYK.xls
S'il vous plai aidez moi...
Merci d'avance
A voir également:
- Macro excel qui marche plus
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
9 réponses
Bonsoir,
Déjà je te rassure, j'ai l'impression qu'il plante bien sur 2003 aussi ;-)
J'ai essayé de le débugger mais ce n'est pas concluant...
Tu devrais plutôt fournir le résultat désiré avec qcq lignes d'exemple (qui recouvrent tous les cas envisageables) je pense que ça sera plus efficace.
J'ai l'impression que tu n'as pas pris la méthode la plus rapide....
eric
Déjà je te rassure, j'ai l'impression qu'il plante bien sur 2003 aussi ;-)
J'ai essayé de le débugger mais ce n'est pas concluant...
Tu devrais plutôt fournir le résultat désiré avec qcq lignes d'exemple (qui recouvrent tous les cas envisageables) je pense que ça sera plus efficace.
J'ai l'impression que tu n'as pas pris la méthode la plus rapide....
eric
Oui effictivement il y a peut etre plus simple :)
http://www.cijoint.fr/cjlink.php?file=cj201012/cijGBsGumh.xls
jai mis en vert tous les A=7
ceci sont tous intact après la macro car les C ne sont pas égaux
j'ai is en bleu les A=9
3 groupe de C égaus apparaissent C=BK / C=BZ et C=R
pour chacun d'entre eux la macro additionne les B
je sais pas si c vraiment claire...
http://www.cijoint.fr/cjlink.php?file=cj201012/cijGBsGumh.xls
jai mis en vert tous les A=7
ceci sont tous intact après la macro car les C ne sont pas égaux
j'ai is en bleu les A=9
3 groupe de C égaus apparaissent C=BK / C=BZ et C=R
pour chacun d'entre eux la macro additionne les B
je sais pas si c vraiment claire...
J'ai réussi à récupérer ton fichier.
Pas fini complètement, je me suis attaché seulement à récupérer tes données plus efficacement.
Il reste a décomposer 7A (en A) en A (en A) et 7 (en C) mais là suis un peu fatigué... ;-)
Dis déjà si c'est bien ce que tu voulais.
Eventuellement si tu arrives à faire cette partie restante (plus les en-têtes) dis-le moi, je ne pourrais m'y remettre éventuellement que demain soir.
test.xls
eric
Pas fini complètement, je me suis attaché seulement à récupérer tes données plus efficacement.
Il reste a décomposer 7A (en A) en A (en A) et 7 (en C) mais là suis un peu fatigué... ;-)
Dis déjà si c'est bien ce que tu voulais.
Eventuellement si tu arrives à faire cette partie restante (plus les en-têtes) dis-le moi, je ne pourrais m'y remettre éventuellement que demain soir.
test.xls
eric
en fait j'ai eu un doute lol
j'ai pas tout compris :
Il reste a décomposer 7A (en A) en A (en A) et 7 (en C)
:$
moi aussi sui sun peu fatigué lol mais je tien la peche je suis encor au taf il me reste quelques formations a faire avant de rentré :)
j'ai pas tout compris :
Il reste a décomposer 7A (en A) en A (en A) et 7 (en C)
:$
moi aussi sui sun peu fatigué lol mais je tien la peche je suis encor au taf il me reste quelques formations a faire avant de rentré :)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
CooOOOooOOL ca marche :)
Dommage juste que le bouton disparaisse lui aussi lol
mais avec mon incapacité casi totale de décripter le language Macro et l'heure tardive qui n'arrange rien... pourrait tu me dire ce que tu lui a demander de faire
histoire d'être sur que ca marche bien et que ce ne soit pas une simple vue de l'esprit très tantante lol
Dommage juste que le bouton disparaisse lui aussi lol
mais avec mon incapacité casi totale de décripter le language Macro et l'heure tardive qui n'arrange rien... pourrait tu me dire ce que tu lui a demander de faire
histoire d'être sur que ca marche bien et que ce ne soit pas une simple vue de l'esprit très tantante lol
je contrôler plein de lignes... est ce que j'ai le droit de dire que tu es un géni?
ha... j'ai pas le droit???
Tant pis tu m'a tiré d'une bien mauvaise passe :))
et oui oui tu es un GENI !!!!
je suis sure qu'un géni comme toi trouvera une solution pour que le bouton de macro ne disparaisse pas avec les lignes de titres lol (bien que si les lignes de titres disparraissent c pas trop grave pour la siute :)
car mmine de rien, je suis c'est sur une suite de 10 macro aussi farfelue les unes que les autres lol
celle ci est la 8è
ha... j'ai pas le droit???
Tant pis tu m'a tiré d'une bien mauvaise passe :))
et oui oui tu es un GENI !!!!
je suis sure qu'un géni comme toi trouvera une solution pour que le bouton de macro ne disparaisse pas avec les lignes de titres lol (bien que si les lignes de titres disparraissent c pas trop grave pour la siute :)
car mmine de rien, je suis c'est sur une suite de 10 macro aussi farfelue les unes que les autres lol
celle ci est la 8è
le bouton ne disparait pas, il est toujours en feuil1 avec les données intactes en feuil1, le résultat en feuil2.
J'avais bien vu que tu créais et supprimais des feuilles mais sans pouvoir voir le résultat réel. J'ai juste pondu le tableau final, cette partie là je te la laisse.
Dodo maintenant, l'explications du code se sera demain
eric
J'avais bien vu que tu créais et supprimais des feuilles mais sans pouvoir voir le résultat réel. J'ai juste pondu le tableau final, cette partie là je te la laisse.
Dodo maintenant, l'explications du code se sera demain
eric
merci bcp
bonne nuit :)
a demain donc :)
histoire que je découvre encore une partie du sombre mystère du language VBA lol
merci encore eric
bonne nuit :)
a demain donc :)
histoire que je découvre encore une partie du sombre mystère du language VBA lol
merci encore eric