Vba pb de copier coller

Fermé
onra - 11 juin 2008 à 15:27
 onra - 11 juin 2008 à 16:28
Bonjour,
J'ai besoin d'un gros coup de main!

Je vous erxplique tout d'abord le but de mon tableau

J'ai 2 feuilles : Suivi financier et Situation

Le principe est que chaque mois, l'utilisateur remplit la situation (financière) dont le total est renovyé ves la feuille suivi financier qui est un récap de l'ensemble des situ mensuels.

Mon code se divise en 2:
Tou d'abord une procédure "enregistrer" qui me permet:
- de numéroter la situation selon le mois (mois 1= situ 1.....)
- d'enregistrer la feuille excel dans un fichier
de nommer la situ suivante

La procédure suivante est "valider"; elle permet:
- d'enregistrer les totaux d'une situ vers la colonne correspondante de suivi financier.

Mon problème est que la seconde procédure enregistre (quand cela enregistre) toujours sur la même colonne qui est la colonne 11 (va savoir pourquoi?) quelque soit le numéro de la colonne choisie au début de la procédure.

Bref... je suis en train de baisser les bras, d'autant plus que mes compétences quasi nul en vba me permettent pas de comprendre grand chose au message d'erreurs....

le code est juste en dessous, cela sera certainement plus facil à comprendre avec:



Private Sub Enregistrer_Click()

Dim z, v

v = InputBox("N° de la nouvelle situation a enregistrée:")
Worksheets(3).SaveAs "G:\Economie de chantier\Outil bis\Situation\Situation " & v
Range("F12:J20").Select
Selection.ClearContents
Range("N12:R20").Select
Selection.ClearContents
z = InputBox("N° de la nouvelle situation")
ActiveWorkbook.Worksheets(3).Name = "Situation" & " " & z



End Sub

Private Sub Valider_Click()

Dim z, k As Integer
Dim Cell As Range

z = InputBox("N° de la situation traitée:")
'saisie du N° de la situation; le k correspond au n° de la colonne visée dans suivi financier
k = 2 * z + 11
MsgBox ("z=" & z)
MsgBox ("k=" & k)

For j = 12 To 20
Sheets("Suivi financier").Select
Cells(j, k).Value = Worksheets(3).Cells(j, 20).Value
Next j
' la boucle for permet de réperter la copie pour 9 lignes qui se suivent
End Sub



En tout cas merci à ceux qui prendront un peu de temps pour me sortir de la pannade....
A voir également:

2 réponses

Ivan-hoe Messages postés 433 Date d'inscription dimanche 17 février 2008 Statut Membre Dernière intervention 17 octobre 2008 309
11 juin 2008 à 15:52
Salut Onra,
quand tu visualises les valeurs de z et de k, est-ce que ce sont les bonnes (surtout k) ?
MsgBox ("z=" & z)
MsgBox ("k=" & k)
A suivre...
0
Oui, c bien le problème
il me renvoie les bonnes valeurs
Par exemple:
-je lui dis de traiter la situation n°2 (z=2)
-ensuite k = 15
-par contre la copie ce fait dans la colonne 11

.........

autant dire que c'est à s'arracher les cheveux

En tout cas merci d'avoir répondu
0
amigo > onra
11 juin 2008 à 16:19
la solution est là

z = Val(InputBox("N° de la situation traitée:"))
0
Bonjour,

la fonction inputbox retourne un texte donc la ligne
z = InputBox("N° de la situation traitée:")
affecte à z la valeur texte de "4" par exemple

ensuite tu fais
k = 2 * z + 11

et comme z est un texte sa valeur est 0
k = 2 * 0 + 11 = 11 quel que soit "z"

pour avoir une valeur numérique il faut écrire
z = Val(InputBox("N° de la situation traitée:"))

A+.
0
Merci,

je crois bien que tu as la réponse.
Le problème, c'est qu'il doit il y avoir une autre erreur dans le code qui fait que je n'arrive pas à lire/ou à copier (je ne sais pas trop) la colonne de résultat de la situation. en tout cas rien apparaît dans suivi financier

en tout cas merci encore pour ton aide
0