bennyscot
Messages postés19Date d'inscriptionmercredi 15 novembre 2006StatutMembreDernière intervention17 octobre 2012
-
29 nov. 2006 à 11:05
drikce06
Messages postés2236Date d'inscriptionlundi 29 mai 2006StatutMembreDernière intervention29 mai 2008
-
30 nov. 2006 à 08:43
Bonjour à tous,<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /??>
Je suis novice en VBA et dans le cadre de mon travail je viens de reprendre un fichier Excell avec une Macro.
Ce fichier Excell est constitué de deux onglets « Validation Contestation » et « Synthèse contestation du mois ». Le but de la Macro est de faire passer certaines infos du premier onglet dans le deuxième.
Le premier onglet est construit comme cela :
n° de contestation
, XXXXX
, ----
Client
, THYSSEN
, ----
Compte fournisseur (8 chiffres)
, 53479023
, ----
Site fournisseur (2 chiffres)
, 00
, ----
Mois industriel
, Octobre
, ----
Année
, 2006
, ----
Date début période
, 15-oct
, ----
Date fin de période
, 20-oct
La Macro doit normalement prendre les 6 indicateurs du clients et la rajouter dans l’autre onglet comme ceci :
N°
contestation
,
Client
,
Compte
fournisseur
(8 chiffres)
,
Site
fournisseur
(2 chiffres)
,
Mois
industriel
,
Année
,
Date
début période
,
Date
fin de période
,
----
XX28
,
THYSSEN
,
52479023
,
00
,
Octobre
,
2006
,
15-oct
,
20-oct
,
----
XX27
,
THYSSEN
,
0024713
,
00
,
Octobre
,
2006
,
15-oct
,
20-oct
Le problème est qu’à l’heure actuelle la Macro me permet juste d’indiquer automatiquement un seul indicateur cad le compte fournisseur.
Voici se qui se passe après l’activation de la Macro :
N°
contestation
,
Client
,
Compte
fournisseur
(8 chiffres)
,
Site
fournisseur
(2 chiffres)
,
Mois
industriel
,
Année
,
Date
début période
,
Date
fin de période
,
----
,
Libellé
,
0024713
,
,
,
,
,
,
----
XX28
,
THYSSEN
,
0024713
,
00
,
Octobre
,
2006
,
15-oct
,
20-oct
Voici la Macro que j’ai à l’heure actuelle : Comment l’améliorer pour indiquer tous les indicateurs en ligne comme ci-dessus ?
Merci Beaucoup
Sub Macro1()
'
' Macro1 Macro
' Macro enregistrée le 09/11/2006 par p039631
'
'
Cells.Select
Selection.ClearContents
Selection.Delete Shift:=xlUp
End Sub
Sub Valider()
'
' Valider Macro
' Macro enregistrée le 09/11/2006 par p039631
'
'
Sheets("Synthèse contestation du mois ").Select
Rows("2:2").Select
Selection.Insert Shift:=xlDown
Sheets("Validation Contestation").Select
Range("B3").Select
Selection.Copy
Sheets("Synthèse contestation du mois ").Select
Range("B2").Select
ActiveSheet.Paste
Sheets("Validation Contestation").Select
Range("B4").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Synthèse contestation du mois ").Select
Range("C2").Select
ActiveSheet.Paste
End Sub
Sub Macro3()
'
' Macro3 Macro
' Macro enregistrée le 09/11/2006 par p039631
'
'
End Sub
A voir également:
Débutant VBA - Pb urgent - transfert d'info d'un onglet à un autre
drikce06
Messages postés2236Date d'inscriptionlundi 29 mai 2006StatutMembreDernière intervention29 mai 200810 29 nov. 2006 à 11:29
Salut, précise un peu plus quel paramètre tu veux voir sur le deuxième onglet, car là d'après ce que tu dis, ce que tu obtient est bon, ou alors j'ai pas tout saisie!
Drikce 06
Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:
bennyscot
Messages postés19Date d'inscriptionmercredi 15 novembre 2006StatutMembreDernière intervention17 octobre 2012 29 nov. 2006 à 11:40
Bonjour Drikce,
Je veux en gros que toutes les infos du client THYSSEN cad ,le compte fr, le site fr, le mois industriel, l'année, et les dates aillent dans le deuxième onglet en ligne.
1er onglet<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>n° de contestation
, XXXXX
, ----
Client
, THYSSEN
, ----
Compte fournisseur (8 chiffres)
, 53479023
, ----
Site fournisseur (2 chiffres)
, 00
, ----
Mois industriel
, Octobre
, ----
Année
, 2006
, ----
Date début période
, 15-oct
, ----
Date fin de période
, 20-oct
Il faudrait que j'ai ça dans le 2ème onglet cad ttes la ligne renseignée mais le Pb c'est qu'avec la macro (voir premier message) que j'ai ,seul le compte fr est renseigné (il me manque donc les autres infos que je dois retaper à la main).
bennyscot
Messages postés19Date d'inscriptionmercredi 15 novembre 2006StatutMembreDernière intervention17 octobre 2012 29 nov. 2006 à 13:04
Je veux faire ça à partir d'un client sorti de ces contestations. Le numéro de contestation est renseigné à la main.
Je m'y connais vraiment pas beaucoup mais je pense que le début de la macro peut rester fixe. cad cette partieSheets("Synthèse contestation du mois ").Select<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>
Et c'est dans l'autre parti qu'il faudrait étendre le code. Car pour moi cette parti ne prend en compte que l'indicateur compte fr et non les autres.
A titre d'info dans mon fichier Excell la cell B4 est le numéro du compte fournisseur (cad 53479023) dans la feuille Validation Contestation et la cell C2 et la cell où ce numero de compte fr réapparait dans la feuille Synthèse contestation du mois.
bennyscot
Messages postés19Date d'inscriptionmercredi 15 novembre 2006StatutMembreDernière intervention17 octobre 2012 29 nov. 2006 à 13:56
Non il y a juste un tableau comme cela: (donc une seule contestation )
Colonne A ColonneBn° de contestation <?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>
, XXXXX
, ----
Client
, THYSSEN
, ----
Compte fournisseur (8 chiffres)
, 53479023
, ----
Site fournisseur (2 chiffres)
, 00
, ----
Mois industriel
, Octobre
, ----
Année
, 2006
, ----
Date début période
, 15-oct
, ----
Date fin de période
, 20-oct
Et en bas de ce petit tableau il ya un bouton appelé archiver qui active la macro et crée une ligne supplémentaire sur la feuille Synthèse contestation du mois.
drikce06
Messages postés2236Date d'inscriptionlundi 29 mai 2006StatutMembreDernière intervention29 mai 200810 29 nov. 2006 à 14:34
Dim NumContestation As String
Dim NomClient As String
Dim CptClient As String
Dim SiteFournisseur As String
Dim MoisIndus As String
Dim Annee As String
Dim DebutPeriode As String
Dim FinPeriode As String
Dim i As Integer
Dim j As Integer
For j = 1 To i - 1
If NumContestation = Sheets("Synthèse contestation du mois").Range("A" & j).Text Then
MsgBox "Ce numéro de contestation existe déjà!"
Exit Sub
End If
Next
Sheets("Synthèse contestation du mois").Range("A" & i) = CStr(NumContestation)
Sheets("Synthèse contestation du mois").Range("B" & i) = NomClient
Sheets("Synthèse contestation du mois").Range("C" & i) = CptClient
Sheets("Synthèse contestation du mois").Range("D" & i) = SiteFournisseur
Sheets("Synthèse contestation du mois").Range("E" & i) = MoisIndus
Sheets("Synthèse contestation du mois").Range("F" & i) = Annee
Sheets("Synthèse contestation du mois").Range("G" & i) = DebutPeriode
Sheets("Synthèse contestation du mois").Range("H" & i) = FinPeriode
End Sub
Public Function PremiereLigneVide(Colonne As Integer) As Integer
bennyscot
Messages postés19Date d'inscriptionmercredi 15 novembre 2006StatutMembreDernière intervention17 octobre 2012 29 nov. 2006 à 14:53
Il semblerait qu'il y est un Pb avec une partie de ce code car je reçoit un message :
Erreur d'execution '9'
L'indice n'appartient pas à la sélection
Public Function PremiereLigneVide(Colonne As Integer) As Integer
PremiereLigneVide = Sheets("Synthèse contestation du mois").Columns(Colonne).Find("", , , , xlByRows, xlNext).Row
drikce06
Messages postés2236Date d'inscriptionlundi 29 mai 2006StatutMembreDernière intervention29 mai 200810 29 nov. 2006 à 15:00
Hé bien je sais pas moi je n'ai pas cet erreur!
En tout cas ne nomme pas tes feuille excel comme ça: avec des accents et espace, choisit plutôt ça et relance la macro avec les nouveaux noms :
"Synthese_contestation_du_mois"
Drikce 06
Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:
drikce06
Messages postés2236Date d'inscriptionlundi 29 mai 2006StatutMembreDernière intervention29 mai 200810 29 nov. 2006 à 15:34
Sur mon poste où j'ai mis le code!
Et tu m'a dit que tu avais un bouton archiver sur ta veuille, dans mon code j'ai mis :
Private Sub CmdArchiver_Click() où CmdArchiver est le nom du bouton (propriété name)
Drikce 06
Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas: