Coller dans la derniere cellue vide excel

Résolu
mister-t -  
Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

j'ai un probleme que je n'arrive pas a resoudre
Je colle des valeurs issues de combobox et de textbox dans des les dernière cellules vides des colonnes A, B, C, D, E, F, G, H, I, J, K et L

le programme s'execute bien mais les valeurs qui doivent se coller en dernièe cellule pour les colonnes B et C ne se fait pas au bonne endroit contrairement aux autre colonnes ou le collage en dernière cellule est respecté.

Je précise que les colonnes de A a L sont identiques

Prog

Sub copienouvelledistance()

Dim annee As String
Dim wbk1 As Workbook

Set wbk1 = ThisWorkbook
annee = UserForm1.TextBox7.Value
mois = UserForm1.TextBox6.Value


If UserForm1.TextBox6.Value = "01" Then

ColonneA = "A"
With Sheets(annee)
DerLig = .Range(ColonneA & "65536").End(xlUp).Row + 1
Range(ColonneA & DerLig) = UserForm1.TextBox1.Value
End With

ColonneB = "B"
With Sheets(annee)
DerLig = .Range(ColonneB & "65536").End(xlUp).Row + 1
Range(ColonneB & DerLig) = UserForm1.TextBox6.Text
End With

ColonneC = "C"
With Sheets(annee)
DerLig = .Range(ColonneC & "65536").End(xlUp).Row + 1
Range(ColonneC & DerLig) = UserForm1.TextBox7.Value
End With

ColonneD = "D"
With Sheets(annee)
DerLig = .Range(ColonneD & "65536").End(xlUp).Row + 1
Range(ColonneD & DerLig) = UserForm1.ComboBox1.Value
End With

ColonneE = "E"
With Sheets(annee)
DerLig = .Range(ColonneE & "65536").End(xlUp).Row + 1
Range(ColonneE & DerLig) = UserForm1.ComboBox2.Value
End With

ColonneF = "F"
With Sheets(annee)
DerLig = .Range(ColonneF & "65536").End(xlUp).Row + 1
Range(ColonneF & DerLig) = UserForm1.TextBox2.Value
End With

ColonneG = "G"
With Sheets(annee)
DerLig = .Range(ColonneG & "65536").End(xlUp).Row + 1
Range(ColonneG & DerLig) = UserForm1.ComboBox3.Value
End With

ColonneH = "H"
With Sheets(annee)
DerLig = .Range(ColonneH & "65536").End(xlUp).Row + 1
Range(ColonneH & DerLig) = UserForm1.ComboBox4.Value
End With

ColonneI = "I"
With Sheets(annee)
DerLig = .Range(ColonneI & "65536").End(xlUp).Row + 1
Range(ColonneI & DerLig) = UserForm1.TextBox3.Value
End With

ColonneJ = "J"
With Sheets(annee)
DerLig = .Range(ColonneJ & "65536").End(xlUp).Row + 1
Range(ColonneJ & DerLig) = UserForm1.TextBox4.Value
End With

ColonneK = "K"
With Sheets(annee)
DerLig = .Range(ColonneK & "65536").End(xlUp).Row + 1
Range(ColonneK & DerLig) = UserForm1.ComboBox5.Value
End With

ColonneL = "L"
With Sheets(annee)
DerLig = .Range(ColonneL & "65536").End(xlUp).Row + 1
Range(ColonneL & DerLig) = UserForm1.TextBox5.Value
End With

end if

UserForm1.Hide
end sub

merci pour les réponses a venir

Application.DisplayAlerts = False
wbk1.Save
Application.DisplayAlerts = True

wbk1.Sheets("Interface").Select

MsgBox ("les données ont bien été enregistrées au mois de Janvier")
A voir également:

6 réponses

mister-t
 
up please

je ne trouve pas l'erreur

un petit coup de main svp
0
Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 135
 
Salut,

Je pense qu'il y a plus simple, si ton fichier ne contient pas de données confidentielles mets un eemple sur le forum avec ce lien et des anotations de ce que tu souhaites faire

https://www.cjoint.com/

A+
0
mister-t
 
je ne peux malheureusement pas mettre mon fichier sur le forum
je vais essayer d'etre plus clair en commentant mon prog

en fait depuis une userform1 qui contient des textbox et des combobox, je copie les valeurs de ces derniers et les colles dans des colonnes dans la dernière cellule vide

donc si je prends un exemple

textbox1 dans A19
textbox6 dans B19
textbox7 dans C19
...

A la fin toutes les valeurs sont collés a la dernière cellule vide de chaque colonne ce qui devrait donner des informations sur une meme ligne

malheureusement la textbox6 ne se colle pas en B19 comme elle le devrait mais en B2
la textbox7 fait la meme chose et se colle en C2

alors que le programme et identique pour chaque colonne
0
Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 135
 
Salut,

en début de procédure mets cette variable

Dim Derlig As Long

Ensuite adapte ce bout de code pour chaque texbox

Derlig = Range("A65536").End(xlUp).Select
ActiveCell.Offset(1, 0) = UserForm1.TextBox1.Value

Ton code doit resemblé à ça, pas la peine de déclarer à chaque bout de code le nom de ta feuille si tout se passe sur la même

Dim Derlig As Long
Derlig = Range("A65536").End(xlUp).Select
ActiveCell.Offset(1, 0) = UserForm1.TextBox1.Value
Derlig = Range("B65536").End(xlUp).Select
ActiveCell.Offset(1, 0) = UserForm1.TextBox6.Value

A+
0
mister-t
 
Merci pour cette réponse,

je viens de tester ton prog et il s'execute bien mais la copie ne se fait toujours pas au bonne endroit pour les colonness B et C

Je viens de voir que se sont les textbox6 et textbox7 qui se collent au mauvais endroit (toujours en B2 et C2)

La textbox6 est définie comme une variable que j'ai appelé mois
La textbox7 est définie comme une variable que j'ai appelé annee

je me sert de la textbox

est ce que ça peut venir de ça ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 135
 
Salut,

Tes colonne B et C sont elles bien vide, sans formules, cellules jumelées ou espace que tu ne vois pas.

Mets ces deux colonnes en surbrillance et efface tout pour voir. Il n'est pas normal que le problème intervienne uniquement sur ces deux colonnes alors que sur les autres aucun problème

A+
0
mister-t
 
salut Mike-31,

voila il n'y a plus de probleme car il s'agissait comme tu l'as devinné d'un probleme de fusion de cellule.
C'est trop rageant de passer une demi journée a chercher alors que c'est qu'une fusion de cellule
Arrrrrg !!!!

Merci encore pour m'avoir aider dans ce probleme

Probleme resolu
0
Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 135
 
Salut,

Je ne sais pas si tu reviendras sur cette discussion, mais si tu reviens, je pense que tu aurais intérêt à mettre en fin de procédure une ligne pour effacer tes contrôles et éviter les erreurs d'une saisie multiple causé par un double clic.

En tous cas merci d'avoir mis ton statut en résolu
0