Transferer lignes VBA

  • Initiateur de la discussion Initiateur de la discussion gabriel
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

G

gabriel

Guest
Bonsoir à toutes et tous,

J'aurais besoins d'une astuces pour finaliser mon programme :

Déplacer une ligne complète de données d'une feuil1 à une feuil2, que le déplacement ne génère pas de blancs et que le transfert sur la feuil2 soit fait tjrs en fin de tableau.... et tout ça à partir d'une checkbox qui se trouve sur un USF de recherche (si la fiche trouvé est validée via la checkbox, elle se transfert sur la feuil2)
Ca fait 3h00 que je suis dessus, pas de solution.

Quelqu'un aurait une idée ?
Merci de votre aide
 
Bonsoir Gabriel, bonsoir le forum,

Je te propose le code suivant que tu devras adapter car tu n'es guère bavard sur comment obtenir le numéro de la ligne à copier... J'ai utilisé ActiveCell dans cet exemple :


Dim dest As Range 'déclare la variable dest

Set dest = Sheets('Feuil2').Range('A65536').End(xlUp).Offset(1, 0) 'définit la variable dest
ActiveCell.EntireRow.Cut Destination:=dest 'copie la ligne vers la variable dest
ActiveCell.EntireRow.Delete shift:=xlUp 'supprime la ligne
 
bonjour,

J'utilise ta réponse robert, mais quel code pourais-je y ajouter pour que les information demeurent dans les plages de départ. Car présentement toute les info sont tranféré.


bonne journée!
 
Bonjour Robert,
A la base je suis sur un USF de recherche
Tous commence à la validation des modifications.
Je souhaiterais déplacer la ligne quand la valeur de la CheckBox2= True
Je me déplace dans la base de donnée avec une listebox Multicolonne, ....
Voila le code dans lequel je souhaiterais integrer le déplacement.
Ma ligne passe de la Feuille 'Base' à la feuille 'AFacturer'.

Merci de t'interresser à mon problème.
-------------------------------------------------
Option Explicit
Dim NomLBindex As Integer
-------------------------------------------------

Private Sub ValidationModifs_Click()

With Sheets('Base')
.Range('A' & NomLBindex).Value = TextBox9.Value
.Range('B' & NomLBindex).Value = TextBox21.Value
.Range('C' & NomLBindex).Value = TextBox10.Value
.Range('D' & NomLBindex).Value = TextBox20.Value
.Range('E' & NomLBindex).Value = TextBox1.Value
.Range('F' & NomLBindex).Value = TextBox2.Value
.Range('G' & NomLBindex).Value = TextBox3.Value
.Range('H' & NomLBindex).Value = TextBox5.Value
.Range('I' & NomLBindex).Value = TextBox7.Value
.Range('J' & NomLBindex).Value = TextBox8.Value
.Range('L' & NomLBindex).Value = TextBox11.Value
.Range('M' & NomLBindex).Value = TextBox12.Value
.Range('N' & NomLBindex).Value = TextBox12.Value
.Range('O' & NomLBindex).Value = TextBox14.Value
.Range('P' & NomLBindex).Value = TextBox15.Value
.Range('Q' & NomLBindex).Value = TextBox19.Value
.Range('R' & NomLBindex).Value = TextBox17.Value
.Range('S' & NomLBindex).Value = TextBox18.Value
.Range('T' & NomLBindex).Value = CheckBox2.Value


End With
Unload Me
UserForm1.Show


End Sub
 
Bonjour Gabriel, Christian, bonjour le forum,

Christian

Supprime cette ligne de code :

ActiveCell.EntireRow.Delete shift:=xlUp 'supprime la ligne

Gabriel

Si j'ai bien compris, je te propose :

Option Explicit
Dim NomLBindex As Integer

Private Sub ValidationModifs_Click()
Dim li As Integer
If checkbox2.Value = True Then
With Sheets('AFacturer')
li = .Range('A65536').End(xlUp).Row + 1
.Range('A' & li).Value = TextBox9.Value
.Range('B' & li).Value = TextBox21.Value
.Range('C' & li).Value = TextBox10.Value
.Range('D' & li).Value = TextBox20.Value
.Range('E' & li).Value = TextBox1.Value
.Range('F' & li).Value = TextBox2.Value
.Range('G' & li).Value = TextBox3.Value
.Range('H' & li).Value = TextBox5.Value
.Range('I' & li).Value = TextBox7.Value
.Range('J' & li).Value = TextBox8.Value
.Range('L' & li).Value = TextBox11.Value
.Range('M' & li).Value = TextBox12.Value
.Range('N' & li).Value = TextBox12.Value
.Range('O' & li).Value = TextBox14.Value
.Range('P' & li).Value = TextBox15.Value
.Range('Q' & li).Value = TextBox19.Value
.Range('R' & li).Value = TextBox17.Value
.Range('S' & li).Value = TextBox18.Value
.Range('T' & li).Value = checkbox2.Value
End With
Else
With Sheets('Base')
.Range('A' & NomLBindex).Value = TextBox9.Value
.Range('B' & NomLBindex).Value = TextBox21.Value
.Range('C' & NomLBindex).Value = TextBox10.Value
.Range('D' & NomLBindex).Value = TextBox20.Value
.Range('E' & NomLBindex).Value = TextBox1.Value
.Range('F' & NomLBindex).Value = TextBox2.Value
.Range('G' & NomLBindex).Value = TextBox3.Value
.Range('H' & NomLBindex).Value = TextBox5.Value
.Range('I' & NomLBindex).Value = TextBox7.Value
.Range('J' & NomLBindex).Value = TextBox8.Value
.Range('L' & NomLBindex).Value = TextBox11.Value
.Range('M' & NomLBindex).Value = TextBox12.Value
.Range('N' & NomLBindex).Value = TextBox12.Value
.Range('O' & NomLBindex).Value = TextBox14.Value
.Range('P' & NomLBindex).Value = TextBox15.Value
.Range('Q' & NomLBindex).Value = TextBox19.Value
.Range('R' & NomLBindex).Value = TextBox17.Value
.Range('S' & NomLBindex).Value = TextBox18.Value
.Range('T' & NomLBindex).Value = checkbox2.Value
End With

Unload Me
UserForm1.Show
End Sub

Message édité par: Robert, à: 02/03/2006 12:01
 
Bonjour & Merci
Au lancement de la validation j'ai ce message qui apparaît :
Référence incorrect ou non qualifiée
Il me surligne
'.Range('A' & li).Value = TextBox9.Value'

Erreur d'execution '1004'
Erreur définie par 'application ou par l'objet

sais tu d'ou ca peut venir ?

Merci
 
Bonjour Gabriel, Christian, bonjour le forum,

Je pense qu'il n'a pas définit la variable li et cela provoque une erreur. Rajoute juste en dessous de With Sheets('AFacturer') et aussi en dessous de With Sheets('Base') la ligne :

Mais l'idéal, pour ne pas perdre notre temps, serait que tu envoies ton fichier. Si celui-ci est trop lourd même zippé, pars d'un fichier vierge, renomme le onglets comme le fichier original, fait un copier/coller de quelques données essentielles à l'exemple et copie l'userform (par VBE fait glisser l'userform sur le fichier exemple). Nous pourrons déceler le bug plus facilement.
 
Re bonjour a tous et a toutes
Robert
Apparamment ca fonctionne...
je t'envois quand meme l'USF, je pense que tu trouveras quelques abberrationsssss.
Dans tous les cas merci beaucoup de ton aide, le code fonctionne et en plus j'ai appris pas mal de choses...
@+
 
Bonjour Gabriel, bonjour le forum,

Autre solution plus simple :


Option Explicit
Dim NomLBindex As Integer

Private Sub ValidationModifs_Click()
Dim li As Integer

If CheckBox2.Value = True Then
With Sheets('AFacturer')
.Select
li = .Range('A65536').End(xlUp).Row + 1
End With
Else
With Sheets('Base')
.Select
li=NomLBindex
End With
End If
Range('A' & li).Value = TextBox9.Value
Range('B' & li).Value = TextBox21.Value
Range('C' & li).Value = TextBox10.Value
Range('D' & li).Value = TextBox20.Value
Range('E' & li).Value = TextBox1.Value
Range('F' & li).Value = TextBox2.Value
Range('G' & li).Value = TextBox3.Value
Range('H' & li).Value = TextBox5.Value
Range('I' & li).Value = TextBox7.Value
Range('J' & li).Value = TextBox8.Value
Range('L' & li).Value = TextBox11.Value
Range('M' & li).Value = TextBox12.Value
Range('N' & li).Value = TextBox12.Value
Range('O' & li).Value = TextBox14.Value
Range('P' & li).Value = TextBox15.Value
Range('Q' & li).Value = TextBox19.Value
Range('R' & li).Value = TextBox17.Value
Range('S' & li).Value = TextBox18.Value
Range('T' & li).Value = checkbox2.Value

Unload Me
UserForm1.Show
End Sub

Comment n'y ai-je pensé plus tôt...
 
Bonjour Gabriel le chercheur, Robert le troubadour, Christian le furtif 🙂

Juste pour le fun, un code qui fait la même chose que celui de Robert mais en moins lisible et un peu moins rapide 😉 :

Option Explicit

Const NbTextBox = ' 9211020 1 2 3 5 7 81112121415191718'

Dim NomLBindex As Integer

Private Sub ValidationModifs_Click()
'
Dim li As Long
Dim i As Byte
'
  Sheets(IIf(checkbox2, 'AFacturer', 'Base')).Select
  li = IIf(checkbox2, Range('A65536').End(xlUp).Row + 1, NomLBindex)

  For i = 0 To 17
    Cells(li, i\\\\\\\\10 + i + 1) = Me.Controls('TextBox' & _
        Trim(Mid(NbTextBox, i * 2 + 1, 2)))
  Next i

  Unload Me
  UserForm1.Show
End Sub

ou comment rendre un code incompréhensible au bout de quelques semaines 🙂

EDITION : Correction indice ligne et mise en forme.
A+

Message édité par: Charly2, à: 02/03/2006 18:16

Message édité par: Charly2, à: 02/03/2006 18:19
 
Bonsoir à tous les virtuoses du VBA, particulièrement Robert qui m'a bien dépanné.
Charly2, je suis en train d'apprendre...
des codes comme ça à chaud, ça fait peur ! il faut me laisser le temps de digerer le basic avant de faire compliqué... mais c'est sympa quand même.

Derniere petit question... de la journée

Pourquoi cette ligne ne passe pas ?
LabelFax = format(LabelFax, '00'' ''00'' ''00'' ''00'' ''00')
je ne vois pas l'erreur, elle fonctionnait et maintenant il y a erreur :

['Erreur de compilation' nombre d'arguments incorrect, ou affection de propriété incorrecte]
Merci à vous
@+
 
Bonsoir Gabriel, Charly, bonsoir le forum,

No comment Charly, Trim(Mid(mescou..., mabi...)) Ok c'est balèze mais alors là où je suis sur le cul c'est avec ton Cells(li, i\\\\\\\\10 + i + 1)! Je viens de téléphoner à Kiloutou pour un rouleau compresseur afin de pouvoir m'aplatir devant tant d'astuce... En plus c'est pas la première fois que tu me baises (si si ! Je suis désolé y'a pas d'autre mots...) sur un plan de suite illogique. Parcourir les colonne de 1 à 20 en sautant la 11 grâce à ta boucle. Chapeau ! Je le dis la rage au cœur, la sueur au front, et l'amer à la bouche (si ça avait été un forum sur word, j'aurais écrit l'amer Docu...) Chapeau !


Édition :

Ooops ! On s'est croisés Gabriel... Voit avec Charly, j'ai très mal à la tête sur ce coup. Et puis le Fort en Maths c'est lui non...

Message édité par: Robert, à: 02/03/2006 19:36
 
re Gabriel et Robert 🙂

Gabriel, je viens d'essayer ton code chez moi en faisant un copier/coller et je n'ai rencontré aucun problème ; il formate correctement le n° de tél.

Sinon, j'ai pô mis le code pour qu'il soit utilisé car si ton appli évolue, il est moins souple que celui de Robert au niveau des modifs 😉

A+
 
Bonjour Robert, Charly & le forum
Ce que je ne m'explique pas, et je n'arrive pas à en trouver la cause, c'est que tout mes formats
que ce soit de la date ou du monétaire, ne fonctionne plus... (tout allait bien jusqu'a ...???, je n'en sait trop rien !!!)

Voila le message :

['Erreur de compilation' nombre d'arguments incorrect, ou affection de propriété incorrecte]

J'ai du faire une 'bétise' mais j'ai beau farfouiller dans le code, je ne trouve pas. j'ai bien une sauvegarde de mes modules, mais ils ne sont pas récent, auriez vous une idée de ce qui peux bien se passer ?
Merci de mettre à profit vos lumières.
@+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
16
Affichages
453
Réponses
3
Affichages
454
Réponses
10
Affichages
644
Retour