Bonjour, je voudrais savoir si par macro il est possible d'ajouter une ligne de code dans VBA?
Bonjour, je voudrais savoir si par macro il est possible d'ajouter une ligne de code dans VBA?
bonsoir,
oui.
JacqueS.
Ps: je ne télécharge les piéces jointes qu'en dernier recours .(et encore...)
Pour devenir mon ami laissez moi un message
... et si oui, comment faire car avec l'enregistrement de macro je n'ai pas réussi à voir...
JacqueS.
Ps: je ne télécharge les piéces jointes qu'en dernier recours .(et encore...)
Pour devenir mon ami laissez moi un message
J'ai essayer de déchiffrer le fichier que tu m'as indiqué mais pour moi c'est pas forcément évident!
si tu pouvais m'expliquer les grandes lignes et comment m'y prendre ou un exemple concret...
c'est un peu juste la réponse "oui" ou un lien par rapport à toutes les excellentes réponses que j'ai pu avoir jusqu'ici sur ce site...
Bonsoir,
la réponse est à la mesure de la question .. vu le peu d'élément que tu nous donne, sur ton avancement , sur ton but la seule solution pour te répondre c'est de copier le tutoriel dont je t'ai donné le liens dans cette discussion ..
à question vague , réponse ...
la modification d'un code VBA par un code VBA n'est pas une opération courante et simple, avec tous les problémes de sécurités que cela entraine...
donc explique plutôt pourquoi tu tiens à modifier cette macro par du code
JacqueS.
Ps: je ne télécharge les piéces jointes qu'en dernier recours .(et encore...)
Pour devenir mon ami laissez moi un message
Bonsoir,
Je plussoie JackOuYA
il y a souvent moyen de se passer de cette écriture de code par du code...
La balle est dans ton camp pour nous expliquer ce que tu souhaites réaliser (la finalité...). Nous pourrons t'aider au mieux.
Bonne continuation
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
---------------
Mes billets de blog sur DVP
Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
---------------
je vais m'expliquer un peu...je ne pensais pas que ça pouvait être aussi compliqué...
J'arrive à la fin de la création d'une base de données dont le principe est de répertorier des projets en fonction d'une liste de clients. la saisie est automatisée pour que l'utilisateur n'aie qu'à rentré le minimum d'information.
J'ai donc un Userform avec plusieurs textbox et combobox.
Les données du Userform sont mises sur un tableau récapitulatif, rangé par département, un des champs du Userform.
Mon problème c'est qu'il y a aussi un mode ajout de client. le fichier marche pour tous les clients déjà rentrés mais pas pour ceux à venir. Pour comprendre le problème sur mon fichier faire ce petit test...
dans le userform rempli dans l'ordre
"projet"
"localisation"
"Gironde"
"Conseil Général"
"Conseil général"
la ligne se créée bien dans l'onglet "récapitulatif"
Maintenant essaies avec :
"projet"
"localisation"
"Corrèze"
"Mairie de Saint Pantaleon de Larche"
"Autre"
On ne récupère que les données du userform...
voilà maintenant les lignes de codes qui me posent problème:
.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 With Sheets("Liste des organismes") If Organisme = "DIR SO" Then .Range("D69 : H69").Copy Sheets("Liste projets").Range("A65535").End(xlUp).Offset(0, 9).PasteSpecial Paste:=xlValues Application.CutCopyMode = False End If If Organisme = "Conseil Général" Then For i = 7 To 34 If .Range("C" & i).Value = Département Then .Range("D" & i & ":H" & i).Copy Sheets("Liste projets").Range("A65535").End(xlUp).Offset(0, 9).PasteSpecial Paste:=xlValues Application.CutCopyMode = False End If Next i End If For n = 76 To 200 If .Range("C" & n).Value = Sheets("champs pour listes").Range("A1").Value Then .Range("D" & n & ":H" & n).Copy Sheets("Liste projets").Range("A65535").End(xlUp).Offset(0, 9).PasteSpecial Paste:=xlValues Application.CutCopyMode = False End If Next n End With
en gros le dernier paragraphe ne fonctionne pas je voulais donc rajouter une ligne de code en copiant sur les paragraphes qui se fasse à chaque ajout de client...
le fichier en pièce jointe...merci
Je ne vois toujours pas pourquoi tu as besoin d'ajouter cela par code...
Sauf si tu ne dis pas tout et que ton appli est déjà chez le client et que tu n'as plus la main dessus...
Est-ce cela?
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
---------------
Mes billets de blog sur DVP
Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
---------------
mon problème c'est que la liste des clients (ou organismes, c'est la même chose) n'est pas finie.mon fichier fonctionne pour tous les éléments déjà rentrés mais le problème c'est que pour l'ajout de client, de nouveaux éléments rentre dans cette liste, et de la manière dont je m'y suis pris :
Dir SO et conseil général sont des éléments déjà rentrés, dans le troisième paragraphe j'essaie de prendre en compte les éléments qui peuvent rentrer dans cette liste, MAIS ça ne marche pas...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 If Organisme = "DIR SO" Then .Range("D69 : H69").Copy Sheets("Liste projets").Range("A65535").End(xlUp).Offset(0, 9).PasteSpecial Paste:=xlValues Application.CutCopyMode = False End If If Organisme = "Conseil Général" Then For i = 7 To 34 If .Range("C" & i).Value = Département Then .Range("D" & i & ":H" & i).Copy Sheets("Liste projets").Range("A65535").End(xlUp).Offset(0, 9).PasteSpecial Paste:=xlValues Application.CutCopyMode = False End If Next i End If For n = 76 To 200 If Sheets("Liste des organismes").Range("C" & n).Value = Organisme Then .Range("D" & n & ":H" & n).Copy Sheets("Liste projets").Range("A65535").End(xlUp).Offset(0, 9).PasteSpecial Paste:=xlValues Application.CutCopyMode = False End If Next n
...du coup je me suis dit qu'il existait peut etre une manière pour ajouter une ligne de code dans VBA, lors de la procédure d'ajout client...
Bonsoir,
J'ai toujours rien compris (c'est comme dans l'autre discussion) à ce que tu veux faire .. mais tu dis vouloir générer des lignes de codes je trouve vraiment illogique que tu sache quoi écrire dans ces lignes que te manque t'il comme informations pour effectuer l directement les actions que tu réserves à ces lignes plutôt que les écrire.
JacqueS.
Ps: je ne télécharge les piéces jointes qu'en dernier recours .(et encore...)
Pour devenir mon ami laissez moi un message
Est ce que tu as essayé les deux tests que j'avais indiqué?
pour le deuxième client : mairie de Saint pantaléon de Larche, les informations disponibles dans l'onglet liste des organismes ne sont pas copiées et ajouter à celle rentré par le userform ajout d'un projet.
en gros si l'utilisateur utilise l'onglet ajout client, un nouveau client et ses informations figureront dans l'onglet liste des organismes, il sera disponible dans le userform ajout d'un nouveau projet mais dans le tableau récapitulatif on ne verra pas ces données client.
quand je disais que je voulais ajouter des lignes de codes, c'était lors de la procédure d'ajout de client (userform2), avec simplement un nom et un numéro de ligne qui change, mais ça n'est peut-être pas la bonne solution...
j'espère que je me suis mieux expliquer...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 If Organisme = "?????????" Then .Range("D?? : H??").Copy Sheets("Liste projets").Range("A65535").End(xlUp).Offset(0, 9).PasteSpecial Paste:=xlValues Application.CutCopyMode = False End If
Avec un peu de logique et de bon sens, tu te rendrais compte que si on doit ajouter des lignes de codes à chaque ajout client, cela va devenir ingérable avec 1000 clients... Non?
Le mieux, ce serait que tu exprimes, en français, ce que tu souhaites réaliser, car manifestement, on n'a pas compris grand chose à ce que tu veux obtenir.
A partir de là, nous pourrons te guider vers une solution pratique
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
---------------
Mes billets de blog sur DVP
Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
---------------
Partager